1240.Faulty Odometer

来源:互联网 发布:长江证券mac版 编辑:程序博客网 时间:2024/06/05 03:33

 

 

 

//把一个9进制数转换成10进制//不过这个9进制数的数字是0 1 2 3 5 6 7 8 9,就是没有4//把4之后的数都减一,然后就是真正的9进制数//“1399” = 1388(9) = 1052(10)//“1500” = 1400(9) = 1053(10)//因此把数字转成标准9进制,再转成10进制就OK了#include<iostream>#include<string>#include<stdio.h>#include<cstring>using namespace std;int main(){char ch[10];int arr[10];while(scanf("%s",ch)&&strcmp(ch,"0")){for(int i=0;i<strlen(ch);++i){arr[i]=ch[i]-'0';if(arr[i]>4)arr[i]-=1;}int fac=1,sum=0;for(int i=strlen(ch)-1;i>=0;--i){sum+=fac*arr[i];fac*=9;}printf("%s: %d\n",ch,sum);}return 0;}


 

原创粉丝点击