标签:style class code tar color c
| Product |
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
使用一个数组报春被乘数个位与乘数的相乘结果,在左移一位累加保存被乘数十位与乘数的相乘结果,以此类推,数组的下标为i的元素的值拥有权值为10^i,代码如下
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;
#define MAX 1000000
int ans[MAX];
int main(void){
string str1, str2;
#ifndef ONLINE_JUDGE
freopen("f:\\infile.txt", "r", stdin);
#endif
while(cin >> str1 >> str2){
int i;
memset(ans, 0, sizeof(ans));
for(i = str1.size()-1; i >= 0; i--){
for(int j = str2.size()-1, p = str1.size()-1-i; j >=0; j--, p++){
ans[p] += (str1[i]-‘0‘)*(str2[j]-‘0‘);
}
}
for(i = 0; i < MAX; i++){
ans[i+1] += ans[i]/10;
ans[i] = ans[i]%10;
}
for(i = MAX-1; i >=0; i--){
if(ans[i])
break;
}
if(i == -1)
cout << 0 << endl;
else{
for(int j = i; j >= 0; j--){
cout << ans[j];
}
cout << endl;
}
}
return 0;
}uva10106 - Product,布布扣,bubuko.com
标签:style class code tar color c
原文地址:http://blog.csdn.net/u011863942/article/details/25001689