//
//大整数乘法
//program insruction
//1.b:当前运算结果
//2.d:进位
//s1[i-1]为最低位 s2[j-1]为最低位
//而a[k]为最低位
//1.b=a[k]+(s1[i-1]-48)*(s2[j-1]-48)+d;
//2.a[k]=b;
//3.k++;
//4.if(d)
// a[k]=d;
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,b,d,l,k;
char s1[100],s2[100];
int a[100];
for(i=0;i<100;++i)
a[i]=0;
printf("please input the fist integer:");
gets(s1);
printf("please input the second integer:");
gets(s2);
l=0;
for(i=strlen(s1);i>0;--i)
{
b=0;
d=0;
k=l;
for(j=strlen(s2);j>0;--j)
{
b=a[k]+(s1[i-1]-48)*(s2[j-1]-48)+d;
a[k]=b;
d=b/10;
k++;
}
if(d)
a[k]=d;
l++;
}
if(a[k]==0)
k--;
for(;k>=0;--k)
printf("%d",a[k]);
printf("\n");
return 0;
}

2万+

被折叠的 条评论
为什么被折叠?



