大整数乘法(POJ2389)
题目链接:http://poj.org/problem?id=2389
#include <stdio.h> #include <string.h> #define Max 100char a[Max]; char b[Max]; int sa[Max]; int sb[Max];int ans[Max*Max];int main() {scanf("%s",a);getchar();scanf("%s",b);_strrev(a);_strrev(b);int len1=strlen(a);int len2=strlen(b);for(int i=0; i<len1; i++)sa[i]=a[i]-'0';for(int i=0; i<len2; i++)sb[i]=b[i]-'0';for(int i=0; i<len2; i++){for(int j=0; j<len1; j++){ans[i+j]+=sa[j]*sb[i];}}for(int i=0; i<Max*Max-1; i++){if(ans[i]>9){ans[i+1]+=ans[i]/10;///整数部分ans[i]=ans[i]%10;///余数部分 }}int pos=0;for(int i=Max*Max-1; i>=0; i--)if(ans[i]!=0){pos=i;break;}for(int i=pos; i>=0; i--)printf("%d",ans[i]);puts("");return 0; }