是一个进制转换的奇妙问题,希望大家能够熟练掌握
上题!!
某辆汽车有一个里程表,该里程表可以显示一个整数,为该车走过的公里数。然而这个里程表有个毛病:它总是从3变到5,而跳过数字4,里程表所有位(个位、 十位、百位等)上的数字都是如此。例如,如果里程表显示339,汽车走过1公里之后,该里程表显示350。
核心思路就是 把这个问题看成是 不包含4的九进制
上答案!!
#include <stdio.h>
#include <string.h>
#define N 1001
int main ()
{
char ch1[N];
scanf("%s",ch1);
int i=0,D=0;
for(i; i < strlen(ch1); i++)
{
if((ch1[i]-48)>4)
{
ch1[i]-=1;
}
D = D*9 + (ch1[i]-48);
}
printf("%d\n",D);
return 0;
}
大家加油啊,与问题死磕!!
最后希望大家点个关注