辆汽车有一个里程表,该里程表可以显示一个整数,为该车走过的公里数。然而这个里程表有个毛病:它总是从3变到5,而跳过数字4,里程表所有位上的数字都是如此。例如,如果里程表显示33

题目描述:
输入
输入一个整数num,表示里程表显示的数值,1 < num < 1000,且一定不含整数4。

			输出
			输出一个整数,为该汽车实际行驶的公里数。例如,如果该里程表显示55,则实际走过的公里 数是40。
			
			样例输入 Copy
			106
			样例输出 Copy
			86

代码

# include<stdio.h>
int main()
{
	int m,n,i,array[1000],sum=0;
	scanf("%d",&m);
	for(n=0; ;n++)
	{
		array[n]=m%10;
		m/=10;
		if(m==0)
		{
			break;
		}
	}
	for(i=0;i<=n;i++)
	{
		if(array[i]>4)
		{
			array[i]-=1;
		}
	}
	for(i=n;i>=0;i--)
	{
		sum=sum*9+array[i];
	}
	
	printf("%d",sum);
	return 0;
}

注意:可转换为一个9进制转换为10进制的问题,此方法更通用。

发布了43 篇原创文章 · 获赞 1 · 访问量 774

猜你喜欢

转载自blog.csdn.net/Du798566/article/details/104209680