【AOJ-611】消失的5,8,9
时间:2014-01-14 19:26:35
收藏:0
阅读:533
Description
期末成绩出来了,又是58,59,无奈啊,yobobobo无法接受这个现实,于是暗下决定:从此之后,5,8,9这些数字将在我的字典里消失!现在yobobobo的世界里没有5,8,9,所以他世界里的数值和我们不一样,在他的世界里,4之后就到了6(我们当然是5),所以yobobobo的世界是这样的:
1,2,3,4,6,7,10,11,12,13,14,16,,17……..47,60……,现在给你一个yobobobo世界里的数值N,请输出他原来的数值(比如6,其实它本来是5)。
1,2,3,4,6,7,10,11,12,13,14,16,,17……..47,60……,现在给你一个yobobobo世界里的数值N,请输出他原来的数值(比如6,其实它本来是5)。
Input
输入包括多组数据,以文件(EOF)结束。
每组测试数据一个整数N(0<=N<=10^9)(输入保证每位数值绝对不包含5,8,9中的任何一位)
每组测试数据一个整数N(0<=N<=10^9)(输入保证每位数值绝对不包含5,8,9中的任何一位)
Output
每组数据输出一个整数,表示真实的N
Sample Input
0 6 221712
Sample Output
0 5 39062
思路:
一个类七进制的题目 0,1,2,3,4,5,6,7对应着0,1,2,3,4,6,7 接着只要换算成十进制即可
参考代码:
#include <stdio.h> int
pow ( int
n) //求7的n次方 { int
i,sum; for (i=0,sum=1;i<n;i++) sum*=7; return
sum; } int
main() { int
n; while ( scanf ( "%d" ,&n)!=EOF) { int
i=0,sum=0,num; while (n>=1) { num=n%10; //因为没有5,8,9 所以根据num的范围要减去相应的数值 if (num==6||num==7) num--; else
if (num==8) num-=2; else
if (num==9) num-=3; sum+=num* pow (i); n/=10; i++; } printf ( "%d\n" ,sum); } return
0; } |
原文:http://www.cnblogs.com/ahu-shu/p/3512275.html
评论(0)