说的是一个很神奇的里程计数器,会从3直接跳到5,而不是4,所以可以把这个数看成是9进制的数(好神奇!开脑洞!)
1 //sicily 1240 Faulty Odometer 2 #include <iostream> 3 #include <cstdio> 4 #include <cmath> 5 #include <cstring> 6 7 using namespace std; 8 9 char num[15]; 10 int a[15]; 11 12 int main() 13 { 14 15 while(cin >> num ,strcmp(num,"0")) 16 { 17 memset(a,0,sizeof(a)); 18 long long ans=0; 19 int len=strlen(num); 20 for(int i=0; i<len; i++) 21 { 22 if((num[i]-‘0‘>3)) 23 a[i]=num[i]-‘0‘-1; 24 else 25 a[i]=num[i]-‘0‘; 26 } 27 int fac=1; 28 for(int i=0; i<len; i++) 29 ans+=a[len-i-1]*(int)pow(9,i); 30 cout << num << ": "; 31 cout << ans << endl; 32 } 33 return 0; 34 }
原文:http://www.cnblogs.com/dominjune/p/4548140.html