大數相加模板

來源:互聯網
上載者:User

 #include <stdio.h><br />#include <string.h></p><p>#define MAX 256</p><p>void bigNumAdd(const char[], const char[], char[]);<br />void strRev(char [], const char []);<br />void delTailZero(char []);</p><p>int main(){<br /> char num1[MAX], num2[MAX], result[MAX];</p><p> while(scanf("%s %s", num1, num2, result)==2){<br /> bigNumAdd(num1, num2, result);<br /> printf("%s/n", result);<br /> }<br /> return 0;<br />}</p><p>void bigNumAdd(const char a[], const char b[], char c[]){<br /> char n1[MAX], n2[MAX], s[MAX];<br /> int l1, l2, len;<br /> int i, carry = 0, e1, e2, sum;</p><p> /*copy parameters and reserve*/<br /> strRev(n1,a);<br /> strRev(n2,b);<br /> delTailZero(n1);<br /> delTailZero(n2);</p><p> l1 = strlen(n1);<br /> l2 = strlen(n2);<br /> len = (l1 > l2) ? l1 : l2;</p><p> /*add bit 0 to bit len-1*/<br /> for(i=0;i<len;i++){<br /> e1 = (i < l1) ? n1[i] - '0' : 0;<br /> e2 = (i < l2) ? n2[i] - '0' : 0;<br /> sum = e1 + e2 + carry;<br /> s[i] = sum % 10 + '0';<br /> carry = sum / 10;<br /> }<br /> /*judge if the last bit's carry is available */<br /> if(carry > 0){<br /> s[len] = '1';<br /> s[len+1] = '/0';<br /> }else{<br /> s[len] = '/0';<br /> }</p><p> strRev(c,s);<br />}<br />void strRev(char des[], const char src[]){<br /> int len, i;</p><p> len = strlen(src);<br /> for(i=0;i<len;i++){<br /> des[i] = src[len-1-i];<br /> }<br /> des[len] = '/0';<br />}<br />void delTailZero(char str[]){<br /> int len, i;</p><p> len = strlen(str);<br /> for(i=len-1;i>=0;i--){<br /> if(str[i]!='0' || i == 0)<br /> break;<br /> else<br /> str[i] = '/0';<br /> }</p><p>}<br />

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.