恩,题目很简单,学习一种思路吧.
123*123=:
1 2 3
1 2 3
-------------------------
3 6 9
2 4 6
1 2 3
--------------------------
1 5 1 2 9
9=3*3;2=2*3+3*2%10;。。。。。。
#include<stdio.h>
#include<string.h>
int main()
{
int n,m,max,i,j,leap;
int a[300],b[300],r[50000];
char str1[300],str2[300];
gets(str1);
gets(str2);
n=strlen(str1);
m=strlen(str2);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(r,0,sizeof(r));
for(i=0;i<n;i++)
{
a[i]=str1[n-1-i]-'0';
}
for(i=0;i<m;i++)
{
b[i]=str2[m-1-i]-'0';
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
r[i+j]=r[i+j]+a[i]*b[j];
}
}
max=n+m-1;
leap=0;
for(i=0;i<max;i++)
{
r[i]=r[i]+leap;
leap=r[i]/10;
r[i]=r[i]%10;
}
if(leap!=0)
r[i]=leap,max++;
for(i=max-1;i>=0;i--)
{
printf("%d",r[i]);
}
printf("\n");
return 0;
}