读书人

HDU 4278 Faulty Odometer 进制转

发布时间: 2012-09-16 17:33:16 作者: rapoo

HDU 4278 Faulty Odometer 进制转化问题

来源:http://acm.hdu.edu.cn/showproblem.php?pid=4278

题意:新定义一种数,这种数字没有3 和 8 ,给你一个这样的数,问其对应的实际的数是多少?

思路:其实就是一个进制转化问题,不过新数字对应的并不是传统上的数字。

代码:

#include <iostream>#include <cstdio>#include <string.h>#include <string>using namespace std; int num[10] = {0,1,2,0,3,4,5,6,0,7};int mi(int x,int cnt){int s = 1;for(int i = 1; i <= cnt; ++i)s *= 8;return s * x;}int main(){string ss;while(cin >> ss){   if(ss == "0")   break;   int ans = 0;   for(int i = 0; i < ss.size(); ++i){      int x = int(ss[i] - '0');  ans += mi(num[x],ss.size() - i - 1);   }   cout<<ss<<": ";   printf("%d\n",ans);}return 0;}


读书人网 >编程

热点推荐