特殊回文数

Posted coolcpp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了特殊回文数相关的知识,希望对你有一定的参考价值。

问题描述

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

输入格式

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

输出格式

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

样例输入

52

样例输出

899998
989989
998899

数据规模和约定
  1<=n<=54。


實現代碼:

#include <stdio.h>

int main()
{
    int num;  //输入的数字
    int snum;  //回文数
    int a, b, c, d, e, f;

    scanf("%d", &num);
    if (num >= 1 && num <= 54)
    {
        snum = 10001;  //5位回文数
        do {
            a = snum / 10000;         //万位
            b = snum % 10000 / 1000;  //千位
            c = snum % 1000 / 100;    //百位
            d = snum % 100 / 10;      //十位
            e = snum % 10;            //个位

            if (a + b + c + d + e == num && a == e && b == d)
            {
                printf("%d
", snum);  //输出数字
            }
            ++snum;
        } while (snum <= 99999);

        snum = 100001;  //6位回文数
        do {
            a = snum / 100000;          //十万位
            b = snum % 100000 / 10000;  //万位
            c = snum % 10000 / 1000;    //千位
            d = snum % 1000 / 100;      //百位
            e = snum % 100 / 10;        //十位
            f = snum % 10;              //个位

            if (a + b + c + d + e + f == num && a == f && b == e && c == d)
            {
                printf("%d
", snum);
            }
            ++snum;
        } while (snum <= 999999);
    }

    return 0;
}




以上是关于特殊回文数的主要内容,如果未能解决你的问题,请参考以下文章

10-基础练习 特殊回文数

基础练习 特殊回文数

蓝桥杯 基础练习 特殊回文数

特殊回文数

特殊回文数

Java蓝桥杯--基础练习特殊回文数