इस समस्या में, हमें दो तार दिए गए हैं जो दो बड़ी संख्याओं को परिभाषित करते हैं। हमारा काम दो बड़ी संख्याओं का योग ज्ञात करने के लिए एक प्रोग्राम बनाना है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
Input: number1 = “341299123919” number2 = “52413424” Output: 341351537343
इस समस्या को हल करने के लिए, हम दोनों स्ट्रिंग को पार करेंगे। और अंकों से अंक जोड़ें और कैरी का प्रचार करें। और परिणाम अंक को अंकों से योग स्ट्रिंग में संग्रहीत करें।
एल्गोरिदम
Initialize sum = 0, carry = 0. Step 1: loop from n to 0. Step 1.1: intSum = number1[i] + number2[i] Step 1.2: carry = intSum/10. Sum += intSum Step 2: sum += carry. Step 3: return sum.
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,
#include<bits/stdc++.h> using namespace std; string addBigNumbers(string number1, string number2) { if (number1.length() > number2.length()) swap(number1, number2); string sum = ""; int len1 = number1.length(); int len2 = number2.length(); int digitDiff = len2 - len1; int carry = 0; int intSum; for (int i=len1-1; i>=0; i--) { intSum = ((number1[i]-'0') + (number2[i+digitDiff]- '0') + carry); sum.push_back(intSum%10 + '0'); carry = intSum/10; } for (int i=digitDiff-1; i>=0; i--) { intSum = ((number2[i]-'0')+carry); sum.push_back(intSum%10 + '0'); carry = intSum/10; } if (carry) sum.push_back(carry+'0'); reverse(sum.begin(), sum.end()); return sum; } int main() { string number1 = "235235823852"; string number2 = "45230820348"; cout<<"Sum of two large numbers is "<<addBigNumbers(number1,x number2); return 0; }
आउटपुट
Sum of two large numbers is 280466644200