Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

เพิ่มตัวเลขสองตัวที่แสดงโดยสองอาร์เรย์ในโปรแกรม C


ตัวเลขที่แสดงโดยอาร์เรย์จะถูกจัดเก็บในรูปแบบที่แต่ละหลักของตัวเลขจะแสดงด้วยองค์ประกอบของอาร์เรย์ ตัวอย่างเช่น

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

ในการเพิ่มตัวเลขดังกล่าว เราจะเพิ่มตัวเลขด้วยตัวเลขที่มีนัยสำคัญน้อยที่สุดก่อน และหากผลรวมมากกว่า 10 จะทำการส่งต่อ หลังจากนี้เราจะไปหาตัวเลขถัดไปของอาร์เรย์ที่ทำขั้นตอนเดียวกันและหาผลรวม

มาดูตัวอย่างการบวกตัวเลขสองตัวกัน −

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

คำอธิบาย − เราจะเพิ่มตัวเลขที่มีนัยสำคัญน้อยที่สุดของตัวเลข เช่น 6+8 =14 ที่จะแพร่กระจายการพกพา จากนั้นสำหรับ 9+3+1 =13 ตัวเดียวกันที่จะส่งต่อไปยังหมายเลขถัดไป ผลรวมต่อไปจะเป็น 2+6+1 =9 ซึ่งจะทำให้ผลรวม =934

อัลกอริทึม

เพื่อหาผลรวมของตัวเลขที่เก็บเป็นอาร์เรย์ เราจะตรวจสอบก่อนว่าตัวเลขใดมีจำนวนหลักมากกว่านั้นหรือไม่ ถ้าใช่ เราจะหาผลรวมจนถึงตัวเลขของจำนวนที่น้อยกว่า แล้วไปบวกตัวเลขของจำนวนที่มากกว่า

นอกจากนี้ เราจะตรวจสอบหมายเลขพกพาที่จะติดตามการพกพาที่อาจเกิดขึ้นในผลรวมและจำเป็นต้องส่งต่อ ในขั้นต้นจะเป็นศูนย์และยังเป็นศูนย์ก่อนการทำซ้ำทุกครั้ง เราจะหาผลรวมของตัวเลขทีละตัวและเก็บไว้ในอาร์เรย์แล้วพิมพ์ออกมา

ตัวอย่าง

#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