大整数乘法 C语言设计Description 求两个不超过200位的非负整数的积. Input 有两行,每行是一个不超过200位的非负整数,没有多余的前导0. Output 一行,即相乘后的结果.结果里不能有多余的前导0,即

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 01:53:30
大整数乘法 C语言设计Description 求两个不超过200位的非负整数的积. Input 有两行,每行是一个不超过200位的非负整数,没有多余的前导0. Output 一行,即相乘后的结果.结果里不能有多余的前导0,即

大整数乘法 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; }