zoukankan      html  css  js  c++  java
  • 最小的回文数

    题目描述

    回文数是从前往后和从后往前得到的数是相同的。
    现给你一个正整数N,请你找到比N大的最小的那个回文数P。

    输入格式

    输入包含多组测试数据。
    每组输入一个正整数N,N不超过10000位,并且N不包含前导0。

    输出

    对于每组输入,输出比N大的最小的那个回文数P。

    样例输入

    44
    3
    175

    样例输出

    55
    4
    181

    字符串处理,很巧妙的方法。

    #include<stdio.h>
    #include<string.h>
    char s[10001];
    int main()
    {
            int i,len,hl,f;
            while(scanf("%s",s)!=EOF)
            {
                    len=strlen(s)-1;
                    hl=(len+1)>>1;
                    for(i=hl-1,f=0;i>=0&&!f;i--)
                            f=s[i]==s[len-i]?0:(s[i]>s[len-i]?1:-1);
                    if(f<=0)
                    {
                            s[len>>1]++;
                            for(i=len>>1;i&&s[i]>'9';i--)
                            {
                                    s[i]='0';
                                    s[i-1]++;
                            }
                            if(s[0]>'9')
                            {
                                    s[0]='1';
                                    len++;
                                    hl=(len+1)>>1; 
                                    s[hl]='0';
                            }
                    }
                    for(i=0;i<hl;i++)
                            putchar(s[i]);
                    for(i=hl-(len&1);i>=0;i--)
                            putchar(s[i]);
                    putchar(10);
            }
            return 0;
    }
    我愿付出努力,只为更好的明天
  • 相关阅读:
    MinGW GCC 7.1.0 2017年6月份出炉啦
    java面试题-框架篇九
    spring-AOP原理
    spring的bean管理(注解)
    23种设计模式(1)-单例模式
    SSH框架面试题集锦
    JQuery基础
    实现用户注册
    spring与hibernate的整合
    spring-IOC理解1
  • 原文地址:https://www.cnblogs.com/castledrv/p/3665424.html
Copyright © 2011-2022 走看看