大数乘以大数
#include<iostream> using namespace std; int main(){ char s1[100],s2[100]; int res[100]; while(cin>>s1>>s2){ memset(res,0,sizeof(res)); int len1=strlen(s1); int len2=strlen(s2); for(int i=0;i<len1/2;i++) swap(s1[i],s1[len1-i-1]); for(int i=0;i<len2/2;i++) swap(s2[i],s2[len2-i-1]); for(int i=0;i<len1;i++){ for(int j=0;j<len2;j++){ res[i+j]+=(s1[i]-'0')*(s2[j]-'0'); } } for(int i=0;i<len1+len2;i++){ if(res[i]>10) { res[i+1]+=res[i]/10; res[i]=res[i]%10; } } int i; for( i=len1+len2;(res[i]==0)&&i>=0;i--); //跳过前导0 if(i>=0) for(;i>=0;i--) cout<<res[i]; else cout<<0<<endl; cout<<endl; } return 0; }