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;}