簡單大數乘法vjudge- 51Nod
阿新 • • 發佈:2018-12-08
給出2個大整數A,B,計算A*B的結果。
Input
第1行:大數A
第2行:大數B
(A,B的長度 <= 1000,A,B >= 0)
Output
輸出A * B
Sample Input
123456 234567
Sample Output
28958703552
#include<stdio.h> #include<string.h> int main() { char a[1005],b[1005]; int lena,lenb,i,j,k=0,t=0; int c[3000]={0}; scanf("%s%s",a,b); lena=strlen(a); lenb=strlen(b); for(i=lena-1;i>=0;i--)//乘法運算 { for(j=lenb-1;j>=0;j--) { c[i+j+1]+=(a[i]-'0')*(b[j]-'0'); } } for(i=lena+lenb-1;i>=0;i--)//進位 { if(c[i]>9) { c[i-1]+=c[i]/10; c[i]%=10; } } while(!c[k]&&k!=lena+lenb-1)//將首位為0 的去掉 k++; for(i=k;i<lena+lenb;i++) { printf("%d",c[i]); } printf("\n"); return 0; }