题目描述
大家都知道,小W是一名大帅哥,当然比起Light还是有点儿差距的!帅气的小W认为0-9这些数字,只有1,3,5是完美的。
欲问小W为什么,小W总是说“帅哥,是不需要解释的”.所以在帅哥小W的世界里,只有1,3,5这些数字或者是有1,3,5组合
而成的数字,比如13,35555等等。
那么现在问题来了,给你一个小W的世界里的数字,你能计算出它是第几小吗?
例如:1是第一小,3是第二小,(在小W的世界里是没有负数的,为什么呢?因为:帅哥,是不需要解释的)
输入
多组输入数据
对于每组数据,输入一个数,该数字的位数长度<35,且只包含1,3,5这三个数
输出
输出一行,求出该数字是小W世界里的第几小
--正文
类似10进制的读取,只不过变成特殊的3进制
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; char num[100]; int order[10]; long long res = 0; int main(){ order[1] = 1; order[3] = 2; order[5] = 3; while (scanf("%s",num) != EOF){ res = 0; int len = strlen(num); int i; long long base = 1; for (i=len-1;i>=0;i--){ int nownum = num[i] - '0'; res += order[nownum] * base; base *= 3; } printf("%lld ",res); } return 0; }