Computer >> Máy Tính >  >> Lập trình >> C ++

Tổng của hai số trong đó một số được biểu diễn dưới dạng mảng chữ số trong C ++

Trong bài toán này, chúng ta được cung cấp hai số, từ đó một số được biểu diễn bằng cách sử dụng mảng các chữ số. Nhiệm vụ của chúng tôi là tạo một chương trình tìm tổng của hai số trong đó một số được biểu diễn dưới dạng mảng các chữ số.

Hãy lấy một ví dụ để hiểu vấn đề,

Input: n = 213, m[] = {1, 5, 8, }
Output: 371
Explanation: 213 + 158 = 371

Để giải quyết vấn đề này, chúng ta chỉ cần đánh số từng chữ số từ số mà phần tử của mảng. Nó lsb của số được thêm vào phần tử thứ (n-1) của mảng. Khoản mang sẽ được truyền cho tổng tiếp theo.

Ví dụ

Chương trình minh họa hoạt động của giải pháp của chúng tôi,

#include <iostream>
using namespace std;
void addNumbers(int n, int size, int *m){
   int carry = 0;
   int sum = 0;
   for(int i = size-1; i >= 0; i--){
      sum = (n%10) + m[i] + carry;
      n /= 10;
      carry = sum/10;
      m[i] = sum%10;
   }  
}
int main() {
   int n= 679;
   int m[] = {1, 9, 5, 7, 1, 9};
   int size = sizeof(m)/sizeof(m[0]);
   cout<<"The sum of two numbers where one number is represented as array of digits is ";
   addNumbers(n, size, m);
   for(int i = 0; i < size; i++)
      cout<<m[i];
}

Đầu ra

The sum of two numbers where one number is represented as array of digits is 196398