大整数乘法 C语言设计Description 求两个不超过200位的非负整数的积. Input 有两行,每行是一个不超过200位的非负整数,没有多余的前导0. Output 一行,即相乘后的结果.结果里不能有多余的前导0,即
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/03 03:37:22
大整数乘法 C语言设计Description 求两个不超过200位的非负整数的积. Input 有两行,每行是一个不超过200位的非负整数,没有多余的前导0. Output 一行,即相乘后的结果.结果里不能有多余的前导0,即
大整数乘法 C语言设计
Description 求两个不超过200位的非负整数的积. Input 有两行,每行是一个不超过200位的非负整数,没有多余的前导0. Output 一行,即相乘后的结果.结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342. Sample Input 12345678900 98765432100 Sample Output 1219326311126352690000
大整数乘法 C语言设计Description 求两个不超过200位的非负整数的积. Input 有两行,每行是一个不超过200位的非负整数,没有多余的前导0. Output 一行,即相乘后的结果.结果里不能有多余的前导0,即
#include #include int main(void) { int r[401]={0}; char n1[201]={'\0'}, n2[201]={'\0'}; gets(n1); gets(n2); int len1=strlen(n1), len2=strlen(n2); int i, j, k; for(i=len1-1;i>=0;--i) { for(j=len2-1;j>=0;--j) { r[len1+len2-2-i-j]+=(n1[i]-'0')*(n2[j]-'0'); } for(k=0;k9) { r[k+1]+=r[k]/10; r[k]%=10; } } } int n=len1+len2-1; if(r[n]==0) --n; for(i=n;i>=0;--i) printf("%d",r[i]); return 0; }