A*B Problem
题目描述
给出两个非负整数,求它们的乘积。
输入格式
输入共两行,每行一个非负整数。
输出格式
输出一个非负整数表示乘积。
样例 #1
样例输入 #1
1
2
样例输出 #1
2
提示
#include<stdio.h>
#include<string.h>
int main()
{
char s1[2002],s2[2002];
int c[4004],a[2002],b[2002],i,j,x,l1,l2,l3;
gets(s1);
gets(s2);
l1=strlen(s1);
l2=strlen(s2);
l3=l1+l2;
for(i=0;i<l1;i++){
a[l1-i]=s1[i]-'0';
}
for(i=0;i<l2;i++){
b[l2-i]=s2[i]-'0';
}
for(i=1;i<=l1;i++){
for(j=1;j<=l2;j++){
c[i+j-1]+=a[i]*b[j];
c[i+j]+=c[i+j-1]/10;
c[i+j-1]%=10;}
}
x=l3;
for(int i=1;i<=x;i++)//判断lc次{
if(c[l3]==0&&l3>0){
l3--;//删除前导0
if(l3==1)
break;//如果长度只剩下1,要跳出循环}
}
for(i=l3;i>0;i--)
printf("%d",c[i]);
return 0;
}
修改2024-4-17