यहां हम एक समस्या देखेंगे, जहां हम दो n अंकों की संख्याओं को जोड़ेंगे लेकिन कैरी प्रसारित नहीं होगी। हम इस अवधारणा को एक उदाहरण के माध्यम से समझ सकते हैं -

तो हम देख सकते हैं कि यहां केवल अंक जुड़ रहे हैं और उत्तर रखा जा रहा है। यहां एक तरकीब है। हमें संख्याओं को दाएं से बाएं स्कैन करना होगा। तो 3+2 = 6 का योग पहले गणना की जाएगी, लेकिन इसे अंत में रखा जाएगा। इसलिए हम मध्यवर्ती परिणामों को संग्रहीत करने के लिए स्टैक का उपयोग करेंगे।
एल्गोरिदम
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