问题 B: 反序数

题目链接http://codeup.cn/problem.php?cid=100000588&pid=1

题目描述
设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)
求N的值

输入
程序无任何输入数据。

输出
输出题目要求的四位数,如果结果有多组,则每组结果之间以回车隔开。

代码

方法1:

#include<stdio.h>

int main() {
    int n;
    for(n = 1000; n < 10000; n++) {
        int m = n / 1000 + n % 1000 / 100 * 10 + n % 100 / 10 * 100 + n % 10 * 1000;
        if(9 * n == m) 
        	printf("%d\n",n);
    }
    return 0;
}

方法2:

#include<stdio.h>

int to_array(int n, int num[]) {
	int i;
	for(i = 0; n >= 1; i++) { 
		num[i] = n % 10;
		n /= 10;
	}
	return i;
}

int main() {
	int n, i, num_1[5], num_2[5];
	for(n = 1000; n < 10000; n++) {
		to_array(n, num_1);
		int m = n * 9;
		if(m < 10000) {
			to_array(m, num_2);
			for(i = 0; i < 4; i++) {
				if(num_1[i] != num_2[3 - i])
					break;
			}
			if(i == 4)
				printf("%d\n", n);
		}
	}
	return 0;
}
发布了148 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Rhao999/article/details/104159743