123321是一个非常特殊的数,它从左边读和从右边读是一样的。输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n ,c语言
时间: 2023-06-23 19:09:58 浏览: 122
以下是C语言代码实现:
```
#include <stdio.h>
int main() {
int n, i, j, k;
scanf("%d", &n);
for (i = 1; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
if (i*2 + j*2 + k == n) {
printf("%d%d%d%d%d\n", i, j, k, j, i); //五位数
printf("%d%d%d%d%d%d\n", i, j, k, k, j, i); //六位数
}
}
}
}
return 0;
}
```
首先输入一个正整数n,然后三重循环枚举所有的五位数和六位数,判断它们各位数字之和是否等于n,如果等于就输出。其中五位数的形式为abcba,六位数的形式为abccba。
相关问题
123321是一个非常特殊的数,从左边读和从右边读是一样的。输入一个正整数n,编程求
所有这样的五位和六位十进制数,满足各位数字之和等于n。
这是一个求解回文数的问题,可以通过循环枚举的方式来解决。具体步骤如下:
1. 读入正整数n。
2. 从10000到999999枚举所有的五位和六位数。
3. 对于每个枚举到的数,判断它是否是回文数,即从左边读和从右边读是一样的。
4. 如果是回文数,再判断它各位数字之和是否等于n。
5. 如果满足条件,输出这个数。
下面是Java代码实现:
for (int i = 10000; i <= 999999; i++) {
String str = String.valueOf(i);
if (str.equals(new StringBuilder(str).reverse().toString())) { // 判断是否是回文数
int sum = 0;
for (int j = 0; j < str.length(); j++) {
sum += str.charAt(j) - '0'; // 计算各位数字之和
}
if (sum == n) {
System.out.println(i); // 输出符合条件的数
}
}
}
123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n
请输入代码:
```
def palindromic_number(n):
res = []
for i in range(10**(n-1), 10**n):
if str(i) == str(i)[::-1] and sum(int(x) for x in str(i)) == n:
res.append(i)
return res
print(palindromic_number(5))
print(palindromic_number(6))
```
阅读全文