问题 E: 回文数(水题)

来源:互联网 发布:用python3写网络爬虫 编辑:程序博客网 时间:2024/06/03 13:02

如有错误,欢迎指出!!!


寒假刷题,不知道是哪里的题目。

问题 E: 回文数

时间限制: 1000 Sec  内存限制: 64 MB
提交: 13  解决: 6
[提交][状态][讨论版]

题目描述

给定一个正整数n,求算出小于等于n的最大回文数。

    回文数:正序与逆序后一样的数,如1,11,121,1221.. 

输入

一个正整数n。(n<=10^9)

输出

小于等于n的最大回文数。

样例输入

123

样例输出

121

解题思路:比较暴力,数据不大,一层层往下扫就好了,感觉写的比较复杂。而且最后输出不需要换行,直接格式错误了3次…


ac code:

#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <cstdlib>#include <cmath>#include <vector>#include <list>#include <deque>#include <queue>#include <iterator>#include <stack>#include <map>#include <set>#include <algorithm>#include <cctype>#define si1(a) scanf("%d",&a)#define si2(a,b) scanf("%d%d",&a,&b)#define sd1(a) scanf("%lf",&a)#define sd2(a,b) scanf("%lf%lf",&a,&b)#define ss1(s)  scanf("%s",s)#define pi1(a)    printf("%d\n",a)#define pi2(a,b)  printf("%d %d\n",a,b)#define mset(a,b)   memset(a,b,sizeof(a))#define forb(i,a,b)   for(int i=a;i<b;i++)#define ford(i,a,b)   for(int i=a;i<=b;i++)#define LL long long#define eps 1e-8#define INF 0x3f3f3f3f#define mod 1000000007#define lson l , m , rt << 1#define rson m + 1 , r , rt << 1 | 1using namespace std;char mmin(char a,char b){    if(a>b)        return b;    else return a;}int main(){    char ss[50];    char s[50];    scanf("%s",ss);    int flag=0,i,j,k,fflag=0;    for(i=0;i<strlen(ss)/2;i++)    {        if(ss[i]>ss[strlen(ss)-i-1])        {            for(j=strlen(ss)-1;j>i;j--)            {                if(ss[j]!='0')                {                    flag=1;                    ss[j]--;                    for(k=strlen(ss)-1;k>j;k--)                        ss[k]='9';                    //puts(ss);                    break;                }            }            if(flag)            {                i--;                continue;            }            else            {                if(i==0)                {                    fflag=1;                    break;                }                else                {                    ss[i]--;                    for(j=i+1;j<strlen(ss);j++)                        ss[j]='9';                    i--;                    continue;                }            }        }        else            s[i]=ss[i];    }    if(fflag)    {        for(i=0;i<strlen(ss)-1;i++)            printf("9");        //printf("\n");        return 0;    }    if(strlen(ss)%2)    {        for(i=0;i<strlen(ss)/2;i++)            printf("%d",s[i]-'0');        printf("%d",ss[strlen(ss)/2]-'0');        for(i=strlen(ss)/2-1;i>=0;i--)            printf("%d",s[i]-'0');        //printf("\n");    }    else if(strlen(ss)%2==0)    {        for(i=0;i<strlen(ss)/2;i++)            printf("%d",s[i]-'0');        for(i=strlen(ss)/2-1;i>=0;i--)            printf("%d",s[i]-'0');       // printf("\n");    }    return 0;}


0 0
原创粉丝点击