P1609 最小回文数

您所在的位置:网站首页 python最小回文数 P1609 最小回文数

P1609 最小回文数

2024-06-12 11:53| 来源: 网络整理| 查看: 265

P1609 最小回文数

[题目链接]https://www.luogu.com.cn/problem/P1609?contestId=146378

题意

输入一个数,输出一个数,但是输出的数是比输入数大的回文数。

思路 步骤1:特殊情况9999,999,99,9,进行进位,注意l++步骤2:先变成一个回文数步骤3:找第一个不是9的数,将中间的9变为0。 坑点 需要特别考虑9999这样的情况 算法一:回文 实现步骤 首先要读入字符串,保存长度for循环变回文数while循环找一个不是9的数,for循环将中间的9变为0 代码 #include #include using namespace std; char s[105], ans[105]; int main() { // 读入 scanf("%s", s); int len = strlen(s); // 保存长度 // 特判(步骤1),注意l++ for (int i = 0; i s[0] = '1'; len++; for (int i = 1; i ans[i] = ans[len - i - 1] = s[i]; } // 步骤3 while (strcmp(ans, s) ans[p] = ans[len - p - 1] = '0'; } // 将中间的9变为0 } // 输出 printf("%s", ans); return 0; } 总结

用一般请况做会超时,但是这种方法有点难以理解,需要考虑特殊情况就是9999,999,99,9的情况(下一个回文数需要加一进位),还有就是回文的特殊写法要小小的理解一下。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3