Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cプログラムで2つの配列で表される2つの数値を追加します


配列で表される数値は、数値の各桁が配列の要素で表されるような形式で格納されます。たとえば、

Number 234 in array is {2,3,4}.

このような数値に加算するには、最初に最下位桁の数値を加算し、合計が10より大きい場合は、キャリーを伝搬します。この後、同じ手順を実行して合計を見つける配列の次の連続する桁に進みます。

2つの数字を追加する例を見てみましょう-

a = {2,9, 6}
b = {6, 3, 8}
Output: 934

説明 −数値の最下位桁を追加します。つまり、キャリーを伝播する6 + 8 =14を追加し、同じ9 + 3 + 1 =13に対して、キャリーを次へ伝播します。次の合計は2+6 + 1 =9になります。これにより、合計=934になります。

アルゴリズム

配列として格納されている数値の合計を見つけるため。まず、桁数が多い数字があるかどうかを確認します。はいの場合、小さい数字の数字までの合計を見つけてから、大きい数字の数字を追加します。

さらに、合計で発生する可能性があり、転送する必要があるキャリーを追跡するキャリー番号を確認します。最初はゼロであり、すべての合計が繰り返される前にゼロになります。数値の合計を1つずつ見つけて配列に格納し、印刷します。

#include <iostream>
using namespace std;
int Sum(int a[], int b[], int n, int m){
   int sum[n];
   int i = n - 1, j = m - 1, k = n - 1;
   int c = 0, s = 0;
   while (j >= 0) {
      s = a[i] + b[j] + c;
      sum[k] = (s % 10);
      c = s / 10;
      k--;
      i--;
      j--;
   }
   while (i >= 0) {
      s = a[i] + c;
      sum[k] = (s % 10);
      c = s / 10;
      i--;
      k--;
   }
   for (int i = 0; i <= n-1; i++) {
      cout<<sum[i];
   }
}
int main(){
   int a[] = { 5, 6, 9 };
   int b[] = { 3, 8 };
   int n = sizeof(a) / sizeof(a[0]);
   int m = sizeof(b) / sizeof(b[0]);
   cout<<"The sum is ";
   if (n >= m)
      Sum(a, b, n, m);
   else
      Sum(b, a, m, n);
   return 0;
}

出力

The sum is 607

  1. Pythonで文字列として表される2つの数値を追加するプログラム

    2つの文字列SとTがあり、これら2つが整数を表しているとすると、それらを追加して、同じ文字列表現で結果を見つける必要があります。 したがって、入力が「256478921657」、「5871257468」の場合、出力は「262350179125」になり、256478921657 + 5871257468 =262350179125 これを解決するには、次の手順に従います- SとTを文字列から整数に変換する ret =S + T retを文字列として返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution:    def solve

  2. 2つの数値を追加するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 2つの大きな数が与えられ、それらを追加して出力を表示する必要があります。 ブルートフォースアプローチでは、オペランド間に「+」演算子を使用するか、2つの数値を反復可能に格納して、Python標準ライブラリで使用可能な組み込みのsum関数を使用できます。 このアプローチでは、計算が10進数で直接行われるため、時間計算量が増加します。 次に、10進数のビットを処理する別のアプローチについて説明します。 ここでは、合計とキャリーを計算する加算器の概念を使用します。 それでは、実装を見