#include<stdio.h>
#include<string.h>
char a[100];
char b[100];
int m,n; //记录大整数a,b的长度
char s[10000]; //保存大整数结果
int main()
{
m=n=0;
char ch;
int i,j,sum,c,l,k;
scanf("%c",&ch);
while(ch!=10)
{
a[m++]=ch;
scanf("%c",&ch);
}
scanf("%c",&ch);
while(ch!=10)
{
b[n++]=ch;
scanf("%c",&ch);
}
for(i=m-1;i>=0;i--)
{
k=m-i-1; //k控制对哪一位做运算
c=0;
for(j=n-1;j>=0;j--)
{
sum=(a[i]-'0')*(b[j]-'0')+c+s[k];
s[k]=sum%10;
c=sum/10;
k++;
}
if(c>0)
{
s[k]=c;
k++;
}
}
k--;
while(k>=0)
printf("%d",s[k--]);
return 0;
}
此方法的时间复杂度很明显为o(n*m);