সংখ্যাটি অ্যারে আকারে স্টোর করা থাকে, প্রতিটি ডিজিট আলাদা এলিমেন্টে। LSB (সবচোয় ডান) শেষে, MSB (সবচোয় বাম) প্রথমে।
উদাহরণ
Number: 351932 → Array: {3,5,1,9,3,2}
Add 1 to {3,5,7,9} → {3,5,8,0} (কারি প্রোপাগেট)
অ্যালগরিদম
- শেষ এলিমেন্টে ১ যোগ করুন।
- কারি = মান/১০, মান = মান%১০।
- বাম দিকে যেতে থাকুন, কারি থাকলে যোগ করুন।
- শেষে কারি থাকলে শুরুতে ১ ইনসার্ট করুন।
C++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
void addone(vector<int> &a) {
int n = a.size();
a[n-1] += 1;
int carry = a[n-1]/10;
a[n-1] %= 10;
for (int i = n-2; i >= 0; i--) {
if (carry == 1) {
a[i] += 1;
carry = a[i]/10;
a[i] %= 10;
}
}
if (carry == 1) a.insert(a.begin(), 1);
}
int main() {
vector<int> num{2, 3, 9, 9};
cout << "The original number is : ";
for (int d : num) cout << d;
cout << endl;
addone(num);
cout << "The incremented value is : ";
for (int d : num) cout << d;
return 0;
}
আউটপুট
The original number is 2399 The incremented value is 2400