एक नंबर जो ऐरे द्वारा दर्शाया जाता है, इस रूप में संग्रहीत होता है कि नंबर का प्रत्येक अंक ऐरे के एक तत्व द्वारा दर्शाया जाता है। उदाहरण के लिए,
संख्या 234 ऐरे में {2,3,4} के रूप में।
ऐसी दो संख्याओं को जोड़ने के लिए हम पहले कम से कम महत्वपूर्ण अंक पर संख्या जोड़ेंगे और यदि योग 10 से अधिक है तो कैरी को आगे बढ़ाएंगे। इसके बाद, हम ऐरे के अगले लगातार अंकों के लिए वही प्रक्रिया करेंगे और योग ढूंढेंगे।
दो नंबर जोड़ने का एक उदाहरण लेते हैं:
a = {2,9,6}
b = {6,3,8}
आउटपुट: 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