>  기사  >  백엔드 개발  >  C 프로그램에서 두 개의 배열로 표현되는 두 개의 숫자를 추가합니다.

C 프로그램에서 두 개의 배열로 표현되는 두 개의 숫자를 추가합니다.

WBOY
WBOY앞으로
2023-09-13 21:49:021014검색

C 프로그램에서 두 개의 배열로 표현되는 두 개의 숫자를 추가합니다.

배열로 표현되는 숫자는 숫자의 각 자릿수가 배열의 요소로 표현되는 방식으로 저장됩니다. 예를 들어,

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

이 숫자를 더하려면 먼저 가장 낮은 숫자의 숫자를 더하고 합이 10보다 크면 캐리를 전달합니다. 그런 다음 배열의 다음 연속 번호에 대해 동일한 프로세스를 계속하고 합계를 냅니다.

예를 들어 두 개의 숫자를 추가해 보겠습니다. -

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

Explanation − 숫자의 최하위 비트인 6+8 = 14를 추가하여 캐리를 전파한 다음 동일한 9+3 +1에 대해 추가합니다. = 13, 이는 다시 다음 숫자로 캐리를 전파합니다. 다음 숫자의 합은 2+6+1 = 9가 됩니다. 이렇게 하면 합계가 934가 됩니다.

알고리즘

배열 형식으로 저장된 숫자의 합을 구합니다. 먼저 숫자에 더 많은 자릿수가 있는지 확인합니다. 그렇다면 작은 숫자의 자릿수 합계를 구한 다음 큰 숫자의 자릿수를 더합니다.

또한 합계에서 발생할 수 있고 전달해야 하는 캐리를 추적하는 캐리 번호를 확인합니다. 처음에는 값이 0이고 합계가 반복되기 전에는 0으로 설정됩니다. 숫자의 합을 하나씩 찾아 배열에 저장한 다음 인쇄해 보겠습니다.

라이브 데모

#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 프로그램에서 두 개의 배열로 표현되는 두 개의 숫자를 추가합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제