Problem Description
As we know , we always use the decimal system in our common life, even using the computer. If we want to calculate the value that 3 plus 9, we just import 3 and 9.after calculation of computer, we will get the result of 12.
But after learning <<The Principle Of Computer>>,we know that the computer will do the calculation as the following steps: 1 computer change the 3 into binary formality like 11; 2 computer change the 9 into binary formality like 1001; 3 computer plus the two number and get the result 1100; 4 computer change the result into decimal formality like 12; 5 computer export the result; In the computer system there are other formalities to deal with the number such as hexadecimal. Now I will give several number with a kind of change method, for example, if I give you 1011(2), it means 1011 is a number in the binary system, and 123(10) means 123 if a number in the decimal system. Now I will give you some numbers with any kind of system, you guys should tell me the sum of the number in the decimal system. |
Input
There will be several cases. The first line of each case contains one integers N, and N means there will be N numbers to import, then there will be N numbers at the next N lines, each line contains a number with such form : X1….Xn.(Y), and 0<=Xi<Y, 1<Y<=10.
I promise you that the sum will not exceed the 100000000, and there will be at most 100 cases and the 0<N<=1000.
|
Output
There is only one line output case for each input case, which is the sum of all the number. The sum must be expressed using the decimal system.
|
Sample Input
3 1(2) 2(3) 3(4) 4 11(10) 11(2) 11(3) 11(4) |
Sample Output
6 23 |
Source
HDU 2007-6 Programming Contest
|
任意进制转化十进制问题!!
<span style="font-size:14px;">#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
int pow(int x, int i){
if (i == 0){
return 1;
}
else if (i == 1){
return x;
}
return x * pow(x, i - 1);
}
void fun(int x, int n,int & sum){
int i = 0, a;
while (x){
a = x % 10;
sum += a * pow(n, i);
x = x / 10;
i++;
}
}
int main(){
int N;
int a, b;
while (cin >> N){
int sum = 0;
while (N--){
scanf("%d(%d)", &a, &b);
if (b == 10){
sum += a;
continue;
}
fun(a, b, sum);
}
cout << sum << endl;
}
return 0;
}</span>