【SPOJ-PALIN】The Next Palindrome【模拟】
2016-02-25 16:46
253 查看
题意:
给出一个数,输出比这个数大的最小的回文数。
参照了http://blog.csdn.net/sunacmer/article/details/7399693
#include <cstdio>
#include <cstring>
const int maxn = 1000005;
int n, num[maxn];
char str[maxn];
inline bool cmp() {
for(int i = 0; i < n; i++)
if(num[i] < str[i] - '0') return 1;
else if(num[i] > str[i] - '0') return 0;
return 1;
}
int main() {
int T; scanf("%d", &T);
while(T--) {
scanf("%s", str); n = strlen(str);
if(n == 1) {
if(str[0] == '9') printf("11\n");
else printf("%c\n", str[0] + 1);
continue;
}
for(int i = n >> 1; i >= 0; i--) num[i] = num[n - i - 1] = str[i] - '0'; num
= 0;
if(cmp()) {
int st = n >> 1; num[st]++;
for(int i = st; num[i] > 9; i++) {
num[i] = 0;
num[i + 1]++;
if(i == n - 1) n++;
}
for(int i = 0; i < st; i++) num[i] = num[n - i - 1];
}
for(int i = 0; i < n; i++) printf("%d", num[i]);
printf("\n");
}
return 0;
}
给出一个数,输出比这个数大的最小的回文数。
参照了http://blog.csdn.net/sunacmer/article/details/7399693
#include <cstdio>
#include <cstring>
const int maxn = 1000005;
int n, num[maxn];
char str[maxn];
inline bool cmp() {
for(int i = 0; i < n; i++)
if(num[i] < str[i] - '0') return 1;
else if(num[i] > str[i] - '0') return 0;
return 1;
}
int main() {
int T; scanf("%d", &T);
while(T--) {
scanf("%s", str); n = strlen(str);
if(n == 1) {
if(str[0] == '9') printf("11\n");
else printf("%c\n", str[0] + 1);
continue;
}
for(int i = n >> 1; i >= 0; i--) num[i] = num[n - i - 1] = str[i] - '0'; num
= 0;
if(cmp()) {
int st = n >> 1; num[st]++;
for(int i = st; num[i] > 9; i++) {
num[i] = 0;
num[i + 1]++;
if(i == n - 1) n++;
}
for(int i = 0; i < st; i++) num[i] = num[n - i - 1];
}
for(int i = 0; i < n; i++) printf("%d", num[i]);
printf("\n");
}
return 0;
}
相关文章推荐
- Transformation 能将 Windows XP/Server 2003 操作系统,完美地模拟成 Windows Vista 的软件
- 用javascript和css模拟select的脚本
- PHP模拟asp.net的StringBuilder类实现方法
- C#使用ImitateLogin模拟登录百度
- javascript用层模拟可移动的小窗口
- 自编jQuery插件实现模拟alert和confirm
- JS模拟按钮点击功能的方法
- PHP模拟asp中response类实现方法
- 模拟Spring的简单实现
- javascript 模拟点击广告
- JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
- php实现模拟post请求用法实例
- JavaScript实现MIPS乘法模拟的方法
- 模拟xcopy的函数
- JS模拟实现Select效果代码
- php模拟服务器实现autoindex效果的方法
- C# SendInput 模拟鼠标操作的实现方法
- PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
- js实现模拟银行卡账号输入显示效果
- JS模拟并美化的表单控件完整实例