大于N的最小回文数
来源:互联网 发布:卫龙工厂淘宝直播视频 编辑:程序博客网 时间:2024/06/05 05:24
题目描述
Palindromic numbers are digital strings that read the same both forwards and backwards. For example, 121, 44 and 3 are Palindromic numbers, 175, 36 are not;For a given integer N, you are to find a palindromic number P that satisfy P>N. However, there are many such palindromic numbers. Your task is to find the least one.
输入
There are several test cases, each test case contains only one positive integer N in one line. The number of digits of N is not exceeding 10,000, and N has not lead zeroes.The input will finish with the end of file.
输出
For each the case, your program will output the least palindromic number P (P > N) on separate line.
样例输入
443175
样例输出
554181
来源
2011ACM/ICPC 第五届华中南赛区邀请赛
题解
思路
题意要求,数N可达10000位,只能用字符串数组存储,对于回文数,只要求前半部分就可写出后半部分,大致分两种情况,一种是前半部分小于后半部分,前半部分有要+1的,这时候就要判断是否有9,有9存在要增加一位的情况,如999/199/191。另一种简单,因为前半部分大于后半部分,所以,只要把前半部分替换后半部分即可,如321/291.
测试数据
89999
1231
12351
9998
9898
2993
1000
100
192
291
121
99
999
2
10
1991
19991
19191
代码如下
#include <cstdio>#include <cstring>#define N 10001char s[N];using namespace std;int main(){ while ( ~scanf("%s",s)){ int len=strlen(s); int flag=0,i; for(i=len/2-1;i>=0;--i){ if(s[i]>s[len-1-i]){flag=1;break;} else if(s[i]<s[len-1-i]){ flag=-1;break;} } if(flag!=1){//前半串要加1 //s[(len-1)/2]++; for(i=(len-1)/2;i>=0;--i){//199 191 999 s[i]++; if(s[i]>'9'){ s[i]='0'; }else break; } if(s[0]=='0'){//999 9999 s[0]='1'; len++; s[len/2]='0'; } } for(i=0;i<len/2;++i) printf("%c",s[i]); for(i=(len+1)/2-1;i>=0;--i) printf("%c",s[i]); printf("\n"); } return 0;}
阅读全文
0 0
- 大于N的最小回文数
- 大于N的最小回文数
- 大于N的最小回文数 HNUST 1274
- 大于一个数的最小回文数
- 权重 相等大于N的最小数
- 找出大于一个数的最小回文数
- 求一个最小的一个大于N并且二进制权重与N相同的数
- 在线笔试题 大于非负整数N的第一个回文数 Symmetric Number
- amazon: 大于非负整数N的第一个回文数
- 如何使用位操作得到大于N且为2的次方的最小的数
- 寻找大于2^N的最小质数
- [Amazon笔试]求比数n大的最小回文数的字符串形式
- 有序数组长度为N 元素出现的长度为 大于等于 N 除 4 的最小的数
- 百度笔试:求大于n的最小的不重复数,不重复数是指相邻两个数不相同
- 求大于一个数的最小对称数
- 找到大于一个正整数N的最小2的次幂数
- 构成最小回文数的分析
- 【DP】回文的最小分割数
- hdu 2187悼念512汶川大地震同胞--老人是真饿了
- C语言位运算之求字节中被置为1的个数
- Android之拍照
- git--Feature分支
- [usaco gold 2016.1]无线电通信
- 大于N的最小回文数
- Java中使用poi导入、导出Excel
- ceph crush算法不一样的理解,和一致性哈希没关系
- How to read a paper?
- RH124-第五节-用户管理
- STL lower_bound()
- 元素出栈、入栈顺序的合法性/计算一个整数二进制位中1的个数。
- 利用Nginx解决跨域问题
- LogisticRegression相关