[Home|Training|Problems|Contests|C Language] | [Login|Register] |
Problems Status Rank |
Problem 1374
火星了
Time Limit: 1000ms
Memory Limit: 65536kb Description
如果你去过火星就会发现,火星上的东西与地球上大不相同,比如说整数不是单一进制的,第n位的进制就是第n个素数。例如:地球上的10进制数2,在火星上记为“1,0”,因为火星个位数是2进制的;地球上的10进制数23,在火星上记为“3,2,1”,因为火星个位数是2进制的,十位数是3进制的,百位数是5进制的,千位数是7进制的……光说一遍都觉得好麻烦,现在交给你一个任务,把火星上的数字转化为地球上的十进制。提示: 3,2,1 = 3*3*2 + 2*2 + 1 = 23 1,1,1,0 = 1*5*3*2 + 1*3*2 + 1*2=30+6+2+0=38 Input
测试输入包含若干测试用例,每个测试用例占一行,包含一个火星正整数,每行的数字不超过25个,火星整数的相邻两位数用逗号分隔。输入以0结束,你不需要处理为0的那一行。
Output
对每个测试用例输出1行,即转换后的10进制数。
Sample Input
1,0 1,1,1,0 0,0,1 3,2,1 0 Sample Output
2 38 1 23 Hint
1,前25个素数分别是 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97 。2,建议采用如下方式读取数据。 /*author: sagitrs*/ int i=0;char c=','; while (c==',') scanf("%d%c",&a[++i],&c); |