大数的乘法
程序代码:
#include <stdio.h> #include <string.h> int main() { char s[105],t[105]; int a[105]={0},b[105]={0},i,j,al,bl,n=1,c[205]={0}; gets(s); gets(t); al=strlen(s); bl=strlen(t); if(s[0]=='0'||t[0]=='0') { printf("0"); goto end; } for(i=0;s[i]!='\0';i++) { a[al-i-1]=s[i]-'0'; } for(i=0;t[i]!='\0';i++) { b[bl-i-1]=t[i]-'0'; } for(i=0;i<bl;i++) { for(j=0;j<al;j++) { c[j]=a[j]*b[i]*n+c[j]; }n=n*10; } for(i=0;i<al-1;i++) { if(c[i]>=10) { c[i+1]=c[i+1]+c[i]/10; c[i]=c[i]%10; } } while(c[i]>0) { c[i+1]=c[i]/10; c[i]=c[i]%10; i++; } for(j=0;j<i;j++) { printf("%d",c[i-j-1]); } end:printf("\n"); return 0; } [local]1[/local]