高精度之加法
发布时间:2020-12-14 02:44:17 所属栏目:大数据 来源:网络整理
导读:题目描述? Description 给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位。 输入描述? Input Description 读入两个用空格隔开的正整数 输出描述? Output Description 输出A+B的值 样例输入? Sample Input 3 12 样例输出? Sample Output 15 数据
题目描述?Description
给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位。
输入描述?Input Description
读入两个用空格隔开的正整数
输出描述?Output Description
输出A+B的值
样例输入?Sample Input
3 12
样例输出?Sample Output
15
数据范围及提示?Data Size & Hint
两个正整数的位数不超过500位 思路简单 #include<stdio.h> #include<string.h> int main(){ char a[505],b[505],c[505],d[505]; int sum[505]; memset(sum,sizeof(sum)); /*gets_s(c); gets_s(d);*/ scanf("%s%s",c,d); int i,j,tmp,t = 0; for (i = strlen(c) - 1,j = 0; i >= 0; i--,j++) a[j] = c[i]; a[j] = ' '; for (i = strlen(d) - 1,j++) b[j] = d[i]; b[j] = ' '; for (i = 0; a[i] != ' '&&b[i] != ' '; i++){ tmp = a[i] - '0' + b[i] - '0' + t; t = tmp / 10; sum[i] = tmp % 10; } while (a[i] != 0){ tmp = a[i] - '0' + t; t = tmp / 10; sum[i++] = tmp % 10; } while (b[i] != 0){ tmp = b[i] - '0' + t; t = tmp / 10; sum[i++] = tmp % 10; } for (i = 501; sum[i] == 0; i--); while (i >= 0) printf("%d",sum[i--]); puts(""); return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |