标签:style blog color os io for 2014 ar
The problem is to multiply two integers X, Y. (0<=X,Y<10250)
The input will consist of a set of pairs of lines. Each line in pair contains one multiplyer.
For each input pair of lines the output line should consist one integer the product.
12 12 2 222222222222222222222222
144 444444444444444444444444
大数相乘,网上有很多模板,今下午练练手,自己写一遍,刚开始忽略了前置0,导致0*12=00,0*123=000,后来改了输出就ac了。
#include <iostream> #include <cstring> #define maxn 260 using namespace std; int main() { char str1[maxn],str2[maxn]; while(cin>>str1>>str2) { int len1,len2; len1=strlen(str1); len2=strlen(str2); int s1[maxn],s2[maxn]; memset(s1,0,sizeof(s1)); memset(s2,0,sizeof(s2)); int i; for(i=0;i<len1;i++) s1[i]=str1[i]-'0'; for(i=0;i<len2;i++) s2[i]=str2[i]-'0'; int sum[maxn+maxn]; memset(sum,0,sizeof(sum)); int j,k; for(i=len2-1;i>=0;i--) { for(j=len1-1;j>=0;j--) { sum[i+j+1]=sum[i+j+1]+s2[i]*s1[j]; } } for(k=len1+len2-1;k>=0;k--) if(sum[k]>=10) { int temp; temp=sum[k]%10; sum[k-1]=sum[k-1]+sum[k]/10; sum[k]=temp; } //if(sum[0]!=0) // cout<<sum[0]; bool flag=0; for(i=0;i<len1+len2-1;i++) { if(sum[i]!=0) flag=1; if(flag==1) cout<<sum[i]; } cout<<sum[len1+len2-1]; cout<<endl; } return 0; }
UVA 10106 Product (大数相乘),布布扣,bubuko.com
标签:style blog color os io for 2014 ar
原文地址:http://blog.csdn.net/sunshumin/article/details/38304211