c语言 大数相加,c/c++开发分享C语言计算大数相加的方法
c/c++開(kāi)發(fā)分享
問(wèn)題描述
輸入兩個(gè)整數(shù)a和b,輸出這兩個(gè)整數(shù)的和。a和b都不超過(guò)100位。
算法描述
由于a和b都比較大,所以不能直接使用語(yǔ)言中的標(biāo)準(zhǔn)
輸入格式
輸入包括兩行,第一行為一個(gè)非負(fù)整數(shù)a,第二行為一個(gè)非負(fù)整數(shù)b。兩個(gè)整數(shù)都不超過(guò)100位,兩數(shù)的最高位都不是0。
輸出格式
輸出一行,表示a?+?b的值。
樣例輸入
20
樣例輸出
20100122203011233454668012
#include #include using namespace std; int main(void) { int a[401] = { 0 }, b[401] = { 0 }, c[401] = {0}; int alen, blen, clen; char st[400]; scanf("%s", &st); alen = strlen(st); for (int i = alen; i >= 1; i--) { a[i] = st[alen - i] - '1' + 1; } scanf("%s", &st); blen = strlen(st); for (int j = blen; j >= 1; j--) { b[j] = st[blen - j] - '1' + 1; } clen = alen>blen ? alen : blen; for (int i = 1; i <= clen; i++) { c[i] = a[i] + b[i]; } for (int i = 1; i <= clen; i++) { if (c[i] >= 10) { c[i + 1] = c[i + 1] + c[i] / 10; c[i] = c[i] % 10; } } if (c[clen + 1] != 0) clen++; for (int i = clen; i >= 1; i--) { printf("%d", c[i]); } printf("n"); return 0; }
以上就是c/c++開(kāi)發(fā)分享
本文來(lái)自網(wǎng)絡(luò)收集,不代表猴子技術(shù)宅立場(chǎng),如涉及侵權(quán)請(qǐng)點(diǎn)擊右邊聯(lián)系管理員刪除。
如若轉(zhuǎn)載,請(qǐng)注明出處:https://www.ssfiction.com/c-cyuyankaifa/595544.html
總結(jié)
以上是生活随笔為你收集整理的c语言 大数相加,c/c++开发分享C语言计算大数相加的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 甘松的功效与作用
- 下一篇: c语言中注释部分二侧分界符为,C语言常见