前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >回文数字

回文数字

作者头像
Lokinli
发布2023-03-09 14:01:21
2520
发布2023-03-09 14:01:21
举报
文章被收录于专栏:以终为始

回文数字

Description

观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。

本题要求你找到一些5位或6位的十进制数字。满足如下要求:

该数字的各个数位之和等于输入的整数。

Input

一个正整数 n (10<n<100), 表示要求满足的数位和。

Output

若干行,每行包含一个满足要求的5位或6位整数。

数字按从小到大的顺序排列。

如果没有满足条件的,输出:-1

解析:枚举每一位数,因为是回文数,前一半和后一半相同,所以5位数和6位数都只需要一个O(n^3)的时间复杂度,n为10。需要注意的地方是除了第一位其他位是可以等于0的。

代码语言:javascript
复制
#include <iostream>
#include <cstdio>
#include <cstring>
#include <bits/stdc++.h>
#include <queue>
#include <algorithm>
#include <map>
#include <cstdlib>
using namespace std;


int main()
{
    int n;
    scanf("%d", &n);
    if(n > 54) printf("-1\n");
    else
    {
        for (int i = 1; i < 10; i ++)
        {
            for(int j = 0; j < 10; j ++)
            {
                for(int k = 0; k < 10; k ++)
                {
                    if(i + j + k + j + i == n)
                    {
                        printf("%d\n",i * 10000 + j * 1000 + k * 100 + j * 10 + i * 1);
                    }
                }
            }
        }
        for (int i = 1; i < 10; i ++)
        {
            for(int j = 0; j < 10; j ++)
            {
                for(int k = 0; k < 10; k ++)
                {
                    if(i + j + k + k + j + i == n)
                    {
                        printf("%d\n",i * 100000 + j * 10000 + k * 1000 + k * 100+ j * 10 + i * 1);
                    }
                }
            }
        }
    }
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 回文数字
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档