您的位置:首页 > 其它

HDU 2106 decimal system(进制转换+模拟)

2016-05-14 00:12 267 查看

decimal system

Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 4367 Accepted Submission(s): 2476



[align=left]Problem Description[/align]
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.

[align=left]Input[/align]
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.

[align=left]Output[/align]
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.

[align=left]Sample Input[/align]

3
1(2)
2(3)
3(4)

4
11(10)
11(2)
11(3)
11(4)


[align=left]Sample Output[/align]

6
23


[align=left]Source[/align]
HDU 2007-6 Programming Contest

题解:进制转换+模拟

AC代码:

#include<iostream>
#include<memory.h>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<cstdlib>
#include<iomanip>
#include<vector>
#include<list>
#include<map>
#include<algorithm>
typedef long long LL;
using namespace std;
int f(int m,int n)
{
int sum=0;
int p=1;
while(m)
{
sum+=(m%10)*p;
p=p*n;
m=m/10;
}
return sum;
}
int main()
{
int n,x,y,sum;
while(cin>>n)
{
sum=0;
for(int i=0;i<n;i++)
{
scanf("%d(%d)",&x,&y);
sum+=f(x,y);
}
printf("%d\n",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: