本文主要是介绍C语言每日一练——第84天:求车速,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
C语言每日一练
2022年3月2日
文章目录
- 题目描述
- 问题分析
- 代码实现
- 运行结果
题目描述
一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上出现了一个新的对称数,该数仍为五位数。问该车的速度是多少?新的对称数是多少?
问题分析
这里的对称数也称回文数,在C语言每日一练——第6天:回文数里已经遇到过,所以我直接使用第6天的函数(判断一个整数是否为回文数)。
求出95859
下一个回文数,再将该回文数与95859
的差除以2就能得出该车的车速。
代码实现
#include <stdio.h>/*** @brief 判断是否为回文数* @return 1:是回文数;0:不是回文数*/
int is_palindrome_number(int num)
{int old_val = num; //传入的数字int new_val = 0; //颠倒后的数字while(num) //当前num的位数大于1(值大于9){//将new_val乘以10,然后加上num的个位数,//使个位数从原来的后第n位变成前第n位new_val = new_val * 10 + num % 10;num /= 10; //num除以10,将个位数去掉}if(new_val == old_val) //如果反转后的数字和原数字相同return 1;else return 0;
}int main()
{int i = 0;float speed = 0.0f;for(i = 95859 + 1; ;i++){if(is_palindrome_number(i)){printf("新的对称数为%d\n", i);break;}}speed = (i - 95859) / 2.0f;printf("该车的速度是%.1f公里/小时\n", speed);return 0;
}
运行结果
这篇关于C语言每日一练——第84天:求车速的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!