题目链接:http://lx.lanqiao.org/problem.page?

gpid=T113

  历届试题 回文数字  
时间限制:1.0s   内存限制:256.0MB
    
问题描写叙述
  观察数字:12321,123321 都有一个共同的特征,不管从左到右读还是从右向左读,都是同样的。这种数字叫做:回文数字。



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

  该数字的各个数位之和等于输入的整数。
输入格式
  一个正整数 n (10<n<100), 表示要求满足的数位和。
输出格式
  若干行,每行包括一个满足要求的5位或6位整数。

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

  假设没有满足条件的,输出:-1
例子输入
44
例子输出
99899

499994

589985

598895

679976

688886

697796

769967

778877

787787

796697

859958

868868

877778

886688

895598

949949

958859

967769

976679

985589

994499
例子输入
60
例子输出
-1
 
题解:自己定义一个类。用来保存回文数以及各个位数之和。

然后按从小到大的顺序直接构造。最后直接查找就可以

AC代码:
#include<iostream>
#include<string>
#define N 1000000
using namespace std;
int pos=0,n;
class Node{
public:
int sum;
string num;
void Calc(int k,int flag){
string str="",tmp="";
while(k) {
str+='0'+k%10; k/=10;
}
tmp+=str[2]; tmp+=str[1];
if(flag){
str=tmp+str;
}
else str=tmp+str[0]+str;
num=str;
}
void CalcBit(){
string s=num;
int total=0,len=s.size();
for(int i=0;i<len;i++) total+=s[i]-'0';
sum=total;
}
}x[N];
void init(){
for(int i=100;i<1000;i++){
x[pos].Calc(i,1);
x[pos++].CalcBit();
}
for(int i=100;i<1000;i++){
x[pos].Calc(i,0);
x[pos++].CalcBit();
}
}
int main()
{
init();
cin.sync_with_stdio(false);
cin>>n;
int flag=1;
for(int i=0;i<pos;i++)
if(x[i].sum==n)cout<<x[i].num<<endl,flag=0;
if(flag)cout<<-1<<endl;
return 0;
}


<span style="color: rgb(51, 51, 51); font-family: 宋体, 'Times New Roman';font-size:18px; line-height: 18.5714302062988px;">出处:</span><a target=_blank href="http://blog.csdn.net/mummyding" style="font-family: 宋体, 'Times New Roman';font-size:18px; line-height: 18.5714302062988px;">http://blog.csdn.net/mummyding</a><span style="color: rgb(51, 51, 51); font-family: 宋体, 'Times New Roman';font-size:18px; line-height: 18.5714302062988px;"> </span>
作者:MummyDing


f




【蓝桥杯】PREV-21 回文数字的更多相关文章

  1. Java实现蓝桥杯历届试题回文数字

    历届试题 回文数字 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的.这样的数字叫做: ...

  2. BASIC-9_蓝桥杯_特殊回文数

    示例代码: #include <stdio.h> int main(void){ int n = 0 ; scanf("%d",&n); int i = 0 ; ...

  3. [蓝桥杯]PREV-21.历届试题_回文数字

    问题描述 观察数字:, 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的.这样的数字叫做:回文数字. 本题要求你找到一些5位或6位的十进制数字.满足如下要求: 该数字的各个数位之和等于输入 ...

  4. [LeetCode] Palindrome Number 验证回文数字

    Determine whether an integer is a palindrome. Do this without extra space. click to show spoilers. S ...

  5. javascript 实现一个回文数字

    写一个方法,让"1234"变成回文数字“1234321”,就是顺着读和倒着读都是一样的:注:不让用reverse()方法: function palindrome(str){ va ...

  6. UVALive 2889(回文数字)

    题意:给定i,输出第i个回文数字. 分析:1,2,3,4,……,9------------------------------------------------------------------- ...

  7. Java 简单算法--打印回文数字

    package cn.magicdu.algorithm; public class CircleNumber { public static void main(String[] args) { f ...

  8. LeetCode 9 Palindrome Number(回文数字判断)

    Long Time No See !   题目链接https://leetcode.com/problems/palindrome-number/?tab=Description   首先确定该数字的 ...

  9. 算法笔记_181:历届试题 回文数字(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的.这样的数字叫做:回文数字. 本题要求你找 ...

随机推荐

  1. PageObject&PageFactory

    几篇介绍PageObject&PageFactory文章: PageFactory: http://code.google.com/p/selenium/wiki/PageFactory Pa ...

  2. 简单的WebRTC例子

    webrtc网上封装的很多,demo很多都是一个页面里实现的,今天实现了个完整的 , A 发视频给 B. A offer.html作为offer <!DOCTYPE html> <h ...

  3. Jaspersoft Studio 导出PDF格式中文不显示

    1:设置字体 2:应用上面设置的字体

  4. phpstudy部署thinkPHP

    利用phpstudy配置虚拟主机 Listen 8080 <VirtualHost _default_:80> DocumentRoot "D:\phpStudy\WWW&quo ...

  5. C语言操作Redis总结

    #include "hiredis.h" #define NO_QFORKIMPL #pragma comment(lib,"hiredis.lib") #pr ...

  6. A Dog's Way Home插曲列表

    The movie songs A Dog's Way Home   文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论

  7. 〖Linux〗Linux的smb地址转换Windows格式(两者互转)

    因为个人常用办公PC是Linux,打开文件共享什么的是 smb:// 的,而不是Windows的 \\ 需要复制文件路径给别人的时候,发smb://给一个使用Windows办公的用户不算很得体的方法 ...

  8. Kinect2.0关节角度获取

    通过Kinect获取到关节的三维坐标点后可以根据向量点积或叉积公式计算出关节角度: $$\vec{a}\cdot \vec{b} = |\vec{a}||\vec{b}|cos\theta$$ vec ...

  9. php与redis使用经验分享 (转载)

    一.安装 1.redis的下载及安装: 引用 mkdir /usr/local/redis cd /usr/local/redis wget http://redis.googlecode.com/f ...

  10. C++中的class (1)

    1.public:public表明该数据成员.成员函数是对全部用户开放的,全部用户都能够直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,不论什么人都不能 ...