এখানে আমরা একটি সমস্যা দেখব, যেখানে দুটি n-ডিজিট সংখ্যা যোগ করা হবে কিন্তু ক্যারি প্রোপাগেট করা হবে না। একটি উদাহরণ দিয়ে বুঝি −

এখানে শুধু ডিজিটগুলো যোগ হয় এবং উত্তর প্লেস করা হয়। এখানে একটি ট্রিক আছে। আমাদের সংখ্যাগুলোকে ডানে থেকে বামে স্ক্যান করতে হবে। সুতরাং ৩+২ = ৬ প্রথমে ক্যালকুলেট হবে, কিন্তু এটি শেষে প্লেস হবে। তাই আমরা ইন্টারমিডিয়েট রেজাল্টগুলো স্টোর করার জন্য স্ট্যাক ব্যবহার করব।
অ্যালগরিদম
noPropagateCarry(a, b)
begin size = max of length of a and length of b for i in range i to size, do al := last digit of a bl := last digit of b push (al + bl) into stack a := a / 10 b := b /10 done pop and print the elements from stack end
উদাহরণ
#include#include #include using namespace std; int length(int n){ return log10(n) + 1; } void noPropagateCarry(int a, int b){ int size = max(length(a), length(b)); stack stk; for(int i = 0; i আউটপুট
Result: 1611125