zoukankan      html  css  js  c++  java
  • 洛谷—— P1609 最小回文数

    https://www.luogu.org/problemnew/show/1609

    题目描述

    回文数是从左向右读和从右向左读结果一样的数字串。

    例如:121、44 和3是回文数,175和36不是。

    对于一个给定的N,请你寻找一个回文数P,满足P>N。

    满足这样条件的回文数很多,你的任务是输出其中最小的一个。

    输入输出格式

    输入格式:

    1行,一个正整数N。N的数值小于10^100,并且N没有前导0。

    输出格式:

    你的程序应该输出一行,最小的回文数P(P>N)。

    输入输出样例

    输入样例#1: 复制
    44
    输出样例#1: 复制
    55

    说明

    50%的数据,N<10^9

    100%的数据,N<10^100

     1 #include <iostream>
     2 #include <cstring>
     3 #include <string>
     4 
     5 using namespace std;
     6 
     7 string tmp,s;
     8 int n;
     9 
    10 int Presist()
    11 {
    12     cin>>s;
    13     tmp=s;    n=s.length();
    14     for(int i=0; i<n>>1; ++i)
    15         s[n-i-1]=s[i];
    16     if(s>tmp) { cout<<s; return 0; }
    17     for(int i=(n-1)>>1; i>=0; --i)
    18         if(s[i]=='9') s[i]='0';
    19         else { s[i]++; break; }
    20     for(int i=0; i<n>>1; ++i)
    21         s[n-i-1]=s[i];
    22     if(s[0]=='0') s[0]='1',s+='1';
    23     cout<<s;
    24     return 0;
    25 }
    26 
    27 int Aptal=Presist();
    28 int main(int argc,char**argv){;}          
  • 相关阅读:
    阅读代码
    openSips
    rc.local 问题
    MyBatis框架使用(一)
    【数据结构杂谈】
    【AGC052A】
    【杜教筛学习笔记】
    CF618F Double Knapsack
    [NOI2016] 循环之美
    【BZOJ 4668 冷战】
  • 原文地址:https://www.cnblogs.com/Shy-key/p/7905713.html
Copyright © 2011-2022 走看看