题解 | 反序数

#include<stdio.h>
using namespace std;
//设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)求N的值
int main() {
	int n,d,c,b,a;
	//找出n的反序数
	for (n = 1000; n <= 9999; n++) {
		d = n % 10;//n的个位
		c = (n - d) / 10 % 10;//n的十位
		b = (n - c * 10 - d) / 100 % 10;//n的百位
		a = (n - b * 100 - c * 10 - d) / 1000 % 10;//n的千位
		//printf("%d %d %d %d\n", a, b, c, d);
		if ((a * 1000 + b * 100 + c * 10 + d) * 9 == (d * 1000 + c * 100 + b * 10 + a)) {
			printf("%d\n", n);
		}
	}
	return 0;
}

全部评论
利用函数的解法:#include<stdio.h> using namespace std; //设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)求N的值 int Reverse(int n) { int reverse = 0; int remain; while (true) { remain = n % 10; n = n / 10; reverse = reverse * 10 + remain; if (n == 0) { break; } } return reverse; } int main() { //int n = 1234; //int reverse = 0; //int remain; ////while (n > 0) { //// remain = n % 10; //// n = n / 10; //// reverse = reverse * 10 + remain; ////} //while (true) {//纯C写while(1)即可 // remain = n % 10; // n = n / 10; // reverse = reverse * 10 + remain; // //死循环方式 // if (n == 0) { // break; // } //} //1000~9999 /*int n = 1234; int reverse = Reverse(n);*/ int n;//注意n的位置对程序的影响 for (n = 1000; n <= 9999; ++n) { if (n * 9 == Reverse(n)) { printf("%d\n", n); } } return 0; }</stdio.h>
点赞 回复 分享
发布于 02-10 22:44 江苏

相关推荐

快点约我面试吧
投递百度等公司10个岗位
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务