7-9 1.2.5 双重回文数 (70分)

如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做“回文数”.例如,12321 就是一个回文数,而 77778 就不是.

当然,回文数的首和尾都应是非零的,因此 0220 就不是回文数. 事实上,有一些数(如 21),在十进制时不是回文数,但在其它进制(如二进制时为 10101)时就是 回文数.

编一个程序,读入两个十进制数 N (1 <= N <= 15) S (0 < S < 10000)

然后找出前 N 个满足大于 S 且在两种以上进制(二进制至十进制)上是回文数的十进制数,输出到 文件上.

本问题的解决方案不需要使用大于 4 字节的整型变量.

输入格式:
只有一行,用空格隔开的两个数 N 和 S.

输出格式:
N 行, 每行一个满足上述要求的数,并按从小到大的顺序输出.

输入样例1:
在这里给出一组输入。例如:

3 25

输出样例1:
在这里给出相应的输出。例如:

26
27
28

输入样例2:

9 10

输出样例2:

15
16
17
18
20
21
24
26
27

输入样例3:

15 9900

输出样例3:

9958
10252
10308
10658
10794
10858
10922
10986
11253
11314
11757
11898
11950
12291
12355

【源代码】

#include <iostream>  
#include <vector>
#include <string>  
#include <algorithm>  
using namespace std;

bool Palin_num(const string a) // 回文数判断函数,使用字符串判断法:回文数关于中心对称,只要比较对称的数即可;
{
    int length;
    length = a.length();
    int flag = 1;
    for (int i = 0; i <= (length / 2); i++)
    {
        if (a[i] != a[length - i - 1])
        {
            flag = 0;
            break;
        }
    }
    if (flag == 1) // 是回文数;
    {
        return true;
    }
    else
    {
        return false;
    }
}

string intToA(int n, int radix)    //进制转换函数,n是待转数字,radix是指定的进制
{
    string ans = "";
    do {
        int t = n % radix;
        if (t >= 0 && t <= 9)
        {
            ans += t + '0';
        }
        else
        {
            ans += t - 10 + 'A';
        }
        n /= radix;
    } while (n != 0);	// 使用do{}while()以防止输入为0的情况
    reverse(ans.begin(), ans.end());
    return ans;
}

int main()
{
    int n, s;
    cin >> n >> s;
    s++; //双重回文数要大于s,从s+1开始遍历;
    vector<int> p; // 容器p,存放双重回文数;
    int sum; // 记录有几种进制的数是回文数;
    while ((p.size() < n)) // 根据容器p里双重回文数的个数决定是否终止程序;
    {
        sum = 0;
        for (int i = 2; i <= 10; i++)
        {
            if (Palin_num(intToA(s, i))) // 此时对应进制的数是回文数;
            {
                sum++; // 记录次数+1;
            }
        }
        if (sum >= 2) // 双重回文数,压入容器p中;
        {
            p.push_back(s);
        }
        s++; // 继续遍历;
    }
    for (int i = 0; i < p.size(); i++)
    {
        cout << p[i] << endl;
    }
    return 0;
}

热门文章

暂无图片
编程学习 ·

【图像处理】A Skinned Multi-Person Linear Model(SMPL)浅解析

【图像处理】A Skinned Multi-Person Linear Model(SMPL)浅解析SMPL的原理结语 SMPL的原理首先,博主不做3D建模的工作(尽管这项工作真的很酷),学习blender也仅是出于兴趣,因此,这篇博文中对SMPL模型的理解会有部分不足,内容仅供参考。《SMPL: A Skinned Multi-Person …
暂无图片
编程学习 ·

MapReduce详细分析

一、MapReduce概述 1、定义 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群 上。 2、MR进程 一个完整的MapR educe程序在分布式运行时有三类实例进程:**Mr AppMaster:**负责整个程序的过程调度及状态协调…
暂无图片
编程学习 ·

Web会话管理

1.会话管理基本原理 1.隐藏域 将表单中的内容在显示页面时隐藏,不显示数据,在JSP 中将input标签type设置为hidden 生成一个隐藏表单域。将会话的唯一标识记录到隐藏域中的value值中,并设定name值。提交给服务器之后,服务器会根据根据会话标识找到会话对象。 缺点:实现比较…
暂无图片
编程学习 ·

动态规划(二)

大佬的第二个视频代码 视频链接 题目一: 题目描述: 在一个数组中(只包含正整数)找出一组不相邻的数,使得其和最大 解题思路: 关键思想: 每个数有选和不选两种选择。按前i个数的最优解来说,如果选这个数,则这个数的前一个数就不能选,因此此时的最优解就是前i-2个数的最…
暂无图片
编程学习 ·

【实习日志】The last Day总结篇

实习总结2020-6-15 → 2020-07-1 hr: 你实习到现在多久了? I: 6-15开始至今,期间有一个周六日和三天端午假期,包含今天累计到您公司:11天 hr: 下午工资转你卡,有机会再合作本次实习虽只有11天,期间自己技术性问题还未领悟到实在的东西,还没感受到进步,但是换做自己是领导…
暂无图片
编程学习 ·

综合练习

一、端午节的淘宝粽子交易 import pandas as pd import numpy as npdf1 = pd.read_csv(zongzi.csv) df1.head()标题价格付款人数店铺发货地址0五芳斋粽子礼盒 心悦+18只装咸鸭蛋组合端午节礼品团购嘉兴肉粽子1296人付款五芳斋官方旗舰店浙江 嘉兴1北京稻香村端午粽子手工豆沙粽…
暂无图片
编程学习 ·

Andoid服务(Service)

Android服务(Service) 服务是一个后台运行的组件,执行长时间运行且不需要用户交互的任务。应用被销毁时也依然可以工作服务的两种状态:started:通过startServer()启动的服务,一旦启动,服务可以在后台一直运行 bound:通过bindServer()绑定的服务,Bound状态的服务,提供…
暂无图片
编程学习 ·

springboot 整合xcf 发布 webservice

Spring Boot集成webService在pom添加依赖<!--WerbService CXF依赖 start--> <dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxws</artifactId> </dependency> <dependency><groupId>org.…
暂无图片
编程学习 ·

那些不常见,但却非常实用的 css 属性

作者:寒水寺一禅https://segmentfault.com/a/11900000228515431、-webkit-line-clamp可以把 块容器 中的内容限制为指定的行数。并且在超过行数后,在最后一行显示"..."这是正常的展示display: -webkit-box; /*值必须为-webkit-box或者-webkit-inline-box*/ -webkit…
暂无图片
编程学习 ·

互联网后浪盘点:“无敌破坏王”们是怎么打破行业格局的?

根据CNBC的第八届的Disruptor 50排行榜,诸多企业在新冠疫情中逆势而起。当别的企业还在为破产、裁员焦虑时,这些公司却成了疫情的得益者,大举融资、招聘,积极推进IPO,很有叫板传统大厂的势头。其中还有36家已经成为突破了10亿大关的独角兽。 让我们来看看,有哪些具有代表…
暂无图片
编程学习 ·

mysql学习总结

连接数据库语句:mysql -h 服务器主机地址 -u 用户名 -p用户密码 基本的数据库操作命令: update user set password=password(‘123456’)where user=‘root’; 修改密码 flush privileges; 刷新数据库 show databases; 显示所有数据库 use dbname;打开某个数据库 show table…
暂无图片
编程学习 ·

Java中的递归

Java中的递归(涉及到面试)举个例子: package com.wang.digui; /* 递归*/ public class Demo {public static void main(String[] args) {int calcetor = calcetor(3);System.out.println(calcetor);}//算阶乘的public static int calcetor(int n){if (n == 1){return 1;}els…
暂无图片
编程学习 ·

[指南]-DeepFaceLab 2.0说明和教程(推荐)

DeepFaceLab 2.0指南/教程此教程机翻自:https://mrdeepfakes.com/forums/thread-guide-deepfacelab-2-0-explained-and-tutorials-recommended什么是DeepFaceLab 2.0?DeepFaceLab 2.0是利用机器学习来交换视频中人脸的工具/应用程序。1.0和2.0有什么区别?DFL 2.0有什么新功能…
暂无图片
编程学习 ·

nginx支持php

ubuntu14.04 +nginx+php5-fpm 一,安装Nginx apt-get install nginx 1,配置nginx nginx所有的配置在 /etc/nginx/nginx.conf中 nginx.conf配置里面包括了 include /etc/nginx/conf.d/.conf;include /etc/nginx/sites-enabled/; 这两个配置,所以这里面的配置也是有效的。 错误…
暂无图片
编程学习 ·

mongodb编译安装

CentOS7 编译安装 Mongodb (实测 笔记 Centos 7.0 + Mongodb 2.6.6) 环境:系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡)系统版本:CentOS-7.0-1406-x86_64-DVD.iso安装步骤:1.准备1.1 显示系统版本 [root@centos ~]# cat /etc/redhat-release CentOS Linux releas…
暂无图片
编程学习 ·

Mybatis直接写sql与使用association映射性能比较

最近在公司发现前辈写多表查询时使用mybatis并未使用等标签封装数据 这引发我对mybatis=有无使用标签进行数据查询的性能比较产生了兴趣,于是乎~~~做了个小小的测试 首先建立两个表:student 和 teacher teacher表结构:student表结构:用java分表为两个表写了个120万的循环…