একটি অ্যারে দেওয়া আছে যা নন-নেগেটিভ নম্বরের ডিজিটগুলোর সংগ্রহ। এই সংখ্যাতে ১ যোগ করতে হবে (অ্যারের ডিজিটগুলো দ্বারা প্রকাশিত সংখ্যা ইনক্রিমেন্ট করা)। ডিজিটগুলো এমনভাবে স্টোর করা থাকে যে সবচেয়ে গুরুত্বপূর্ণ ডিজিট (most significant digit) অ্যারের প্রথম এলিমেন্ট।
অ্যারে দ্বারা প্রকাশিত সংখ্যাতে ১ যোগ করতে:
অ্যারের শেষ থেকে শুরু করুন, যোগ করা মানে শেষ নম্বর ৪ কে ৫ করা।
যদি শেষ এলিমেন্ট ৯ হয়, তবে সেটি ০ করুন এবং carry = 1 রাখুন।
পরবর্তী ইটারেশনে carry চেক করুন এবং যদি যোগফল ১০ হয়, তবে ধাপ ২كرر করুন।
carry যোগ করার পর পরবর্তী ইটারেশনের জন্য carry = 0 করুন।
যদি ভেক্টরের আকার বাড়ে, তবে শুরুতে ১ যোগ করুন।
ধরুন অ্যারেতে [7, 6, 3, 4] আছে, তবে এটি ১২৩৪ সংখ্যাকে নির্দেশ করে এবং এতে ১ যোগ করলে ৭৬৩৫ হবে। তাই নতুন অ্যারে [7, 6, 3, 5]।
উদাহরণ
Input: [7, 6, 9, 9] Output: [7, 7, 0, 0] Input: [4, 1, 7, 8, 9] Output: [4, 1, 7, 9, 0]
ব্যাখ্যা অ্যারের শেষ এলিমেন্টে ১ যোগ করুন, যদি সেটি ৯-র চেয়ে ছোট হয়। যদি এলিমেন্ট ৯ হয়, তবে সেটি ০ করে বাকি এলিমেন্টের জন্য রিকার্শন করুন।
উদাহরণ
#include <iostream> using namespace std; void sum(int arr[], int n) { int i = n; if(arr[i] < 9) { arr[i] = arr[i] + 1; return; } arr[i] = 0; i--; sum(arr, i); if(arr[0] > 0) { cout << arr[0] << ", "; } for(int i = 1; i <= n; i++) { cout << arr[i]; if(i < n) { cout << ", "; } } } int main() { int n = 4; int arr[] = {4, 1, 7, 8, 9}; sum(arr, n); return 0; }