C++での上三角と下三角の合計
この問題では、マトリックスが与えられます。私たちの仕事は、上三角と下三角の合計を印刷するプログラムを作成することです。
下三角
M00 0 0 … 0 M10 M11 0 … 0 M20 M21 M22 … 0 … Mrow0 Mrow1 Mrow2 … Mrow col
上三角形
M00 M01 M02 … M0col 0 M11 M12 … M1col 0 0 M22 … M2col … 0 0 0 … Mrow col
問題を理解するために例を見てみましょう
Input: {{5, 1, 6} {8, 2, 0} {3, 7, 4}} Output: upper triangle sum = 18 lower triangle sum = 29 Explanation: Sum of upper triangle sum = 5 + 1 + 6 + 2 + 0 + 4 = 18 Sum of lower triangle sum = 5 + 8 + 2 + 3 + 7 + 4 = 29
この問題の簡単な解決策。ループを使用して、上三角要素と下三角要素の配列をトラバースします。 lSumとuSumの2つの別々の変数で合計を計算します。
例
ソリューションの動作を説明するプログラム
#include <iostream> using namespace std; int row = 3; int col = 3; void sum(int mat[3][3]) { int i, j; int uSum = 0; int lSum = 0; for (i = 0; i < row; i++) for (j = 0; j < col; j++) { if (i <= j) { uSum += mat[i][j]; } } cout<<"Sum of the upper triangle is "<<uSum<<endl; for (i = 0; i < row; i++) for (j = 0; j < col; j++) { if (j <= i) { lSum += mat[i][j]; } } cout<<"Sum of the lower triangle is "<<lSum<<endl; } int main() { int mat[3][3] = { { 5, 1, 6 }, { 8, 2, 0 }, { 3, 7, 4 }}; sum(mat); return 0; }
出力
Sum of the upper triangle is 18 Sum of the lower triangle is 29
-
C++で上部の対角線を下部と交換します
このチュートリアルは、c ++コードを使用して、3つの対角配列の上の行を下の行に交換するように設計されています。さらに、3対角配列が入力である場合、切望される結果は次のようなものでなければなりません。 このために、アクションのコースは次のようにアルゴリズムで簡単に説明されます; アルゴリズム Step-1: Input a diagonal array Step-2: Pass it to Swap() method Step-3: Traverse the outer loop till 3 Step-4: increment j= i+ 1 in the inner loop t
-
C ++でのアリコートの合計?
ここで、アリコートの合計は何ですか? nのアリコート和は、nを除くnのすべての完全な因子の合計です。たとえば、数値が20の場合、完全な因数は(1、2、4、5、10)です。したがって、アリコートの合計は22です。 興味深い事実の1つは、ある数のアリコートの合計がその数そのものである場合、その数は完全数であるということです。たとえば、6。係数は(1、2、3)です。アリコートの合計は1+2 + 3=6です。 次のアルゴリズムを使用してアリコートの合計を取得する方法を見てみましょう。 アルゴリズム getAliquotSum(n) begin sum := 0 &nbs