两个大数相乘的程式,但online judge 一直显示 wrong answer 哪位大大可以帮我找出错误的 testcase
ProblemDescriptionComputeA*B.InputForeachcasealine,therewillbetwopositiveintegersAand...
Problem DescriptionCompute A*B.
InputFor each case a line, there will be two positive integers A and B < 10^100.
OutputFor each case a line, output the answer A*B.
Sample Input
25 16
897 9945
123456789 987654321
Sample Output
400
8920665
121932631112635269
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char A[105];
char B[105];
char C[105][105];
char D[210];
char *e,q;
int i,j,t,k,c;
while (scanf("%s %s",A,B)!=EOF) {
for (i=0; i<210; i++)
D[i]='0';
k=0;
for (i=strlen(A)-1;i>=0; i--) {
t=0;
e=C[k];
for (j=strlen(B)-1; j>=0; j--) {
*e=(t+(B[j]-'0')*(A[i]-'0'))%10+'0';
e++;
t=(t+(B[j]-'0')*(A[i]-'0'))/10;
}
if (t){
*e=t+'0';
e++;
}
*e='\0';
k++;
}
for (i=0; i<k; i++) {
c=0;
for (j=i; j<strlen(C[i])+i; j++) {
q=(C[i][j-i]-'0'+D[j]-'0'+c)%10+'0';
c=(C[i][j-i]-'0'+D[j]-'0'+c)/10;
D[j]=q;
}
if(c)
D[j++]=c+'0';
}
D[j]='\0';
for (i=strlen(D); i>=0; i--)
printf("%c",D[i]);
printf("\n");
}
return0;
} 展开
InputFor each case a line, there will be two positive integers A and B < 10^100.
OutputFor each case a line, output the answer A*B.
Sample Input
25 16
897 9945
123456789 987654321
Sample Output
400
8920665
121932631112635269
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char A[105];
char B[105];
char C[105][105];
char D[210];
char *e,q;
int i,j,t,k,c;
while (scanf("%s %s",A,B)!=EOF) {
for (i=0; i<210; i++)
D[i]='0';
k=0;
for (i=strlen(A)-1;i>=0; i--) {
t=0;
e=C[k];
for (j=strlen(B)-1; j>=0; j--) {
*e=(t+(B[j]-'0')*(A[i]-'0'))%10+'0';
e++;
t=(t+(B[j]-'0')*(A[i]-'0'))/10;
}
if (t){
*e=t+'0';
e++;
}
*e='\0';
k++;
}
for (i=0; i<k; i++) {
c=0;
for (j=i; j<strlen(C[i])+i; j++) {
q=(C[i][j-i]-'0'+D[j]-'0'+c)%10+'0';
c=(C[i][j-i]-'0'+D[j]-'0'+c)/10;
D[j]=q;
}
if(c)
D[j++]=c+'0';
}
D[j]='\0';
for (i=strlen(D); i>=0; i--)
printf("%c",D[i]);
printf("\n");
}
return0;
} 展开
1个回答
展开全部
大数乘法我也刚写过,反正方法跟网上流行的不同,建议你把字符都减去'0'后再进行计算,显示之前在加上'0',这样比较容易检查错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
TableDI
2024-07-18 广告
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配...
点击进入详情页
本回答由TableDI提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询