123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
时间: 2023-04-21 20:03:33 浏览: 135
编程实现输入一个整数,显示它的位数,并显示它的各位数字,及其各位数字的和
这道题可以用暴力枚举的方法来解决。我们可以先枚举五位数,再枚举六位数,对于每个数,判断它是否是回文数,并且各位数字之和是否等于n。如果满足条件,就输出这个数。
具体的实现方法可以参考以下代码:
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
// 枚举五位数
for (int i = 10001; i <= 99999; i++) {
int sum = ;
int num = i;
// 计算各位数字之和
while (num > ) {
sum += num % 10;
num /= 10;
}
// 判断是否是回文数并且各位数字之和等于n
if (i / 10000 == i % 10 && i / 100 % 10 == i % 100 / 10 && sum == n) {
cout << i << endl;
}
}
// 枚举六位数
for (int i = 100001; i <= 999999; i++) {
int sum = ;
int num = i;
// 计算各位数字之和
while (num > ) {
sum += num % 10;
num /= 10;
}
// 判断是否是回文数并且各位数字之和等于n
if (i / 100000 == i % 10 && i / 10000 % 10 == i % 100 / 10 && i / 100 % 10 == i % 100 / 100 && sum == n) {
cout << i << endl;
}
}
return ;
}
阅读全文