(蓝桥)特殊回文数

Posted waoyu

tags:

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

问题描述

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

输入格式

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

输出格式

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

样例输入

52

样例输出

899998
989989
998899

数据规模和约定

  1<=n<=54。

#include <iostream>
#include<string>
#include<sstream>
#include<map>
#include<algorithm>
#include<cmath>
using namespace std;

string intToStr(int a)
{
    ostringstream o;
    o << a;
    return o.str();
}
int strToInt(string a)
{
    stringstream ss(a);
    int t;
    ss >> t;
    return t;
}



void judge(int i,int n)
{

    string num = intToStr(i);
    string num1 = num;
    reverse(num1.begin(), num1.end());
    if (num == num1)
    {
        int sum = 0;
        for (int j = 0; j < num.length(); j++)
            sum += num[j] - ‘0‘;
        if (sum == n)
            cout << num << endl;
    }
}


int main()
{
    int n;
    cin >> n;
    for (int i = 10; i <=99; i++)
    {
        for (int j = 0; j <= 9; j++)
        {
            string num = intToStr(i);
            string num1 = num;
            reverse(num1.begin(), num1.end());
            string mid = intToStr(j);
            num = num + mid + num1;
            judge(strToInt(num), n);
        }
    }
    for (int i = 100; i <=999; i++)
    {

        string num = intToStr(i);
        string num1 = num;
        reverse(num1.begin(),num1.end());
        num += num1;
        judge(strToInt(num), n);
    }
    
    return 0;
}

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

(蓝桥)特殊回文数

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

蓝桥 基础练习 特殊回文数

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

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

蓝桥杯每日一练之特殊回文数