ACMSTEP 1.2.4 ecimal System //水题 模拟 活用Sprintf和sscanf
2011-08-07 22:36
351 查看
decimal system
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 718 Accepted Submission(s): 312[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
我真想不到 如果不用sscanf和sprintf这道题应该怎么做。
不过还是很简单的。任意进制转换十进制的方法也要会。
还要注意:比赛中不应该用Atoi这套函数 因为不是ANSI C的标准库函数。。
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> using namespace std; long change(int n, int bases) { long i, temp = 0, len; char ex[30]; sprintf(ex,"%d",n); len = strlen(ex); for (i = 0; i<len; i++) { temp+= (ex[i]-'0') * (long)pow((double)bases,(double)len-1-i); } return temp; } int main() { // freopen("c:\\in.txt","r",stdin); int i, cases, j, sum, b, nums; char str[30]; while(cin>>cases) { sum = 0; for (i=0; i<cases; i++) { cin>>str; sscanf(str,"%d(%d)",&nums,&b); sum += change(nums, b); } cout<<sum<<endl; } return 0; }
相关文章推荐
- ACMSTEP 1.2.7 Specialized Four-Digit Numbers //水题 模拟 进制转换
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 A. Visiting Peking University(模拟水题)
- C、C++输出精度控制—hdu acmstep 1.2.4 financial management&&1.2.8 balloon comes
- 北京师范大学第十五届ACM决赛 C题 Captcha Cracker 【水题模拟】
- ACM STEP 1.2.4 find your present (2)
- ACMSTEP 1.2.8 AC me! //水题 模拟题
- ACMSTEP 1.3.4 百步穿杨 //水题 结构体排序
- 关于 sprintf 和 sscanf 在ACM中的常用方法
- ACMSTEP 1.2.5 IBM Minus One//超级水题
- hdu ACM step 1.2.4 hdu2399
- hdoj--2106--decimal system(模拟水题)
- ACMSTEP 1.2.3 QuickSum //超级水题 模拟
- Codeforces Round #316 (Div. 2)-A. Elections-模拟水题22
- sscanf,snprintf,sprintf小结
- Codeforces Round #313 (Div. 2)-Currency System in Geraldion-水题
- [2012山东ACM省赛] The Best Seat in ACM Contest (模拟)
- sprintf和sscanf详解
- [ACM_数据结构] Color the ball [线段树水题][数组开大]
- [ACM]模拟大数加法
- ACM之八数码问题----BFS搜索----数独游戏的模拟(中)