ভূমিকা
একটি সংখ্যাকে অ্যারে আকারে সংরক্ষিত করা আছে (প্রতিটি ডিজিট একটি এলিমেন্ট)। এই সংখ্যার সাথে ১ যোগ করতে হবে রিকার্সিভ পদ্ধতিতে। ডিজিট ৯ হলে ০ হয়ে ক্যারি (carry) পরবর্তী ডিজিটে যায়।
উদাহরণ
ইনপুট: 1782698599 (অ্যারে: {9,9,5,8,9,6,2,8,7,1} - রিভার্স অর্ডার)
আউটপুট: 1782698600
এলগরিদম
increment(arr, n, index=0)
শুরু
যদি index < n:
যদি arr[index] < 9: arr[index]++, রিটার্ন
অন্যথায়: arr[index] = 0, increment(arr, n, index+1)
যদি index == n: arr[n] = 1, n++
শেষ
C++ প্রোগ্রাম উদাহরণ
#include#include #define MAX 20 using namespace std; void increment(int arr[], int &n, int index = 0) { if (index < n) { if (arr[index] < 9) arr[index]++; else { arr[index] = 0; increment(arr, n, index+1); } } if (index == n) { arr[n] = 1; n++; } } void display(int arr[], int n) { for (int i = n-1; i >= 0; i--) cout << arr[i]; cout << endl; } int numToArr(int arr[], int num) { int n = log10(num) + 1; for (int i = 0; i < n; i++) { arr[i] = num % 10; num /= 10; } return n; } int main() { int num = 1782698599, arr[MAX]; int n = numToArr(arr, num); cout << "Initial: "; display(arr, n); increment(arr, n); cout << "Final: "; display(arr, n); return 0; }
আউটপুট
Initial: 1782698599 Final: 1782698600