澳门6合生肖彩开奖查询网_哪里登录≡官方信誉合作伙伴

admin|
7

c++特殊回文数

问题描述

123321是一个非常特殊的数,它从左边读和从右边读是一样的。输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。

输入格式

输入一行,包含一个正整数n。

输出格式

按从小到大的顺序输出满足条件的整数,每个整数占一行。

样例输入

52

样例输出

899998 989989 998899

数据规模和约定  

1<=n<=54。


下面是用C++编写的程序来解决这个问题:

#include <iostream>

// 判断一个数是否是回文数
bool isPalindrome(int num) {
    int originalNum = num;
    int reverseNum = 0;

    while (num > 0) {
        int&2024新奥天天免费资料nbsp;digit = num % 10;
        reverseNum = reverseNum * 10 + digit;
        num /= 10;
    }

    return originalNum == reverseNum;
}
// 计算一个整数的各位数字之和
int digitSum(int num) {
    int sum = 0;
    while (num > 0) {
   &管家婆报_六特网资料大全 nbsp;    sum += num % 10;
        num /= 10;
    }
    return sum;
}

int main() {
    int n;
    std::cin >> n; // 输入整数n

    // 遍历所有五位和六位整数
    for (int num = 10000; num <= 999999; num++) {
        if (isPalindrome(num) && digitSum(num) == n) {
            std::cout << num << std::endl; // 输出满足条件的整数
        }
    }

    return 0;
}

函数中,我们遍历所有五位和六位的整数,并使用函数检查是否是回文数。同时,我们还保留了之前提到的函数来计算各位数字之和。只有当一个数同时满足回文数和各位数字之和等于n的条件时,才输出该整数。

2024澳门一码一肖100准今期指点