ホームページ  >  記事  >  バックエンド開発  >  C プログラムで、2 つの配列で表される 2 つの数値を加算します。

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

WBOY
WBOY転載
2023-09-13 21:49:021014ブラウズ

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

以上がC プログラムで、2 つの配列で表される 2 つの数値を加算します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。