您的位置:首页 > 其它

HDOJ 4278  Faulty Odometer

2015-12-18 18:13 183 查看
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4278

题目意思为:有一个里程表没有3,8这两个数字0,1,2,4,5,6,8,9这八个数字构成一个循环(一个八进制)但数字的顺序不一样,先将给定的数字转化为实际的数字(八进制),再将八进制转化为十进制

代码:

#include

#include

using namespace std;

int main()

{

int
n,i,j,tep,sum,a[10];


while(scanf("%d",&n),n)

{


i=0;


sum=n;


while(n)


a[i++]=n,n/=10;


i--;


for(j=i;j>=0;j--)
//将数字转化为实际的八进制数


{


if(a[j]>=3&&a[j]<8)


{


a[j]--;


continue;


}


if(a[j]>=8)


{


a[j]-=2;


continue;


}


}


tep=1;


n=0;


for(j=0;j<=i;j++)
//八进制转化为十进制


n+=a[j]*tep,tep*=8;


printf("%d: %d\n",sum,n);

}

return
0;

}

。。。。。。。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: