सरणी द्वारा दर्शाई गई संख्या को इस रूप में संग्रहीत किया जाता है कि संख्या के प्रत्येक अंक को सरणी के एक तत्व द्वारा दर्शाया जाता है। उदाहरण के लिए,
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