这道题目我做了很长时间,主要原因是一开始用的方法走到最后的时候走错了,无奈之下只好换了个思路。
这个题目的思路和上一个题目的思路几乎差不多,都是一个个剥离出来,不过这次我把字符串保存的数字直接用ASCII码表示了。
#include <stdio.h>
#include <string.h>
int main()
{
int u,i,j,k,n,m,shu,leap;
char str2[10000],str1[10000],sum[10000];
while(gets(str1)!=NULL)
{
gets(str2);
memset(sum,0,sizeof(sum));
n=strlen(str1);
m=strlen(str2);
for(i=0;i<n;i++)
str1[i]-='0';
for(i=0;i<m;i++)
str2[i]-='0';
for(k=n-1;k>=0;k--)
{
leap=0;
u=n-1-k;
for(j=m-1;j>=0;j--)
{
shu=str2[j]*str1[k]+leap+sum[u];
sum[u]=shu%10;
u++;
leap=shu/10;
}
if(leap)
{
sum[u]=leap;
u++;
}
}
for(i=u-1;i>0;i--)
if(sum[i])
break;
for(i;i>=0;i--)
printf("%d",sum[i]);
printf("\n");
}
return 0;
}