標籤:輸入 整數 rip color str a+b %s char int
寫程式求兩個相同位元的大整數之和
輸入
兩個大整數(位元不超過1000)
輸出
兩個大整數的和
範例輸入
1234567890 1234567890111111111111 222222222222
範例輸出
2469135780333333333333
#include <stdio.h>#include <string.h>char add(char a, int &tag){int r = a-‘0‘+tag;if (r <= 9){ tag = 0; return r+‘0‘;}else{ tag = 1; return r+38;}}char add(char a, char b, int &tag){int r = a+b-96+tag;if (r <= 9){ tag = 0; return r+‘0‘;}else{ tag = 1; return r+38;}}int add(char sum[], char a[], char b[]){int i = strlen(a)-1, j = strlen(b)-1, k = 0, tag = 0;while (i>=0 && j>=0){ sum[k++] = add(a[i--], b[j--], tag);}while (i >= 0){ sum[k++] = add(a[i--], tag);}while (j >= 0){ sum[k++] = add(b[j--], tag);}if (tag != 0){ sum[k++] = tag+‘0‘;}return k;}int main(){char a[1001], b[1001], sum[1002];int i, k;while (scanf("%s %s", a, b) == 2){ k = add(sum, a, b); for (i=k-1; i>=0; --i){ printf("%c", sum[i]); } printf("\n");}return 0;}
大整數加法