इस समस्या में, हमें दो संख्याएँ दी जाती हैं, जिनमें से एक को अंकों की सरणी का उपयोग करके दर्शाया जाता है। हमारा काम एक ऐसा प्रोग्राम बनाना है जो दो संख्याओं का योग ज्ञात करे जहाँ एक संख्या को अंकों की सरणी के रूप में दर्शाया जाता है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
Input: n = 213, m[] = {1, 5, 8, } Output: 371 Explanation: 213 + 158 = 371
इस समस्या को हल करने के लिए, हम सरणी के किस तत्व की संख्या से केवल अंकों के आधार पर अंक प्राप्त करेंगे। यह संख्या का lsb सरणी के (n-1)वें तत्व में जोड़ा जाता है। कैरी को अगली राशि के लिए प्रचारित किया जाएगा।
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,
#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]; }
आउटपुट
The sum of two numbers where one number is represented as array of digits is 196398