列表

详情


BC97. 回文对称数

描述

今天牛牛学到了回文串,他想在数字里面找回文,即回文数,回文数是正着读与倒着读都一样的数,比如1221,343是回文数,433不是回文数。请输出不超过n的回文数。

输入描述

输入一个整数n(1 <= n <= 100000)

输出描述

从1开始按从小到大的顺序输出所有回文数

示例1

输入:

10

输出:

1
2
3
4
5
6
7
8
9

原站题解

C 解法, 执行用时: 3ms, 内存消耗: 288KB, 提交时间: 2022-08-05

#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int i=0;
    for(i=1;i<=n;i++)
    {
        int t=0,num=i;
        while(num>0)
        {
            t=t*10+num%10;
            num=num/10;
            
        }
        if(t==i)
            printf("%d\n",i);
        
    }
    return 0;

}

C 解法, 执行用时: 3ms, 内存消耗: 292KB, 提交时间: 2022-05-10

#include <stdio.h>
int main ()
{
    int n,i,a,c=0;
    scanf("%d",&n);
    for(i = 1;i <= n;i++)
    {
        c = 0;
        a = i; //把数保存到一个变量中
        while (a)
        {
            c =  (a % 10) + c * 10;
            a = a / 10;
           // if(a == 0)
             //   break;
        }
        if(c == i)
        {
            printf("%d\n", c);
        }
    }
    return 0;
}

C 解法, 执行用时: 3ms, 内存消耗: 292KB, 提交时间: 2022-03-18

#include<stdio.h>

int main(void)
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        if(i<10)//ok
        {
            printf("%d\n",i);
        }
        else if(i>=10&&i<100)//ok
        {
            if(!(i%11))
            {
                printf("%d\n",i);
            }
        }
        else if(i>=100&&i<1000)
        {
            if((i%10)==(i/100))
            {
                printf("%d\n",i);
            }
        }
        else if(i>=1000&&i<10000)
        {
            if(((i%10)==(i/1000))&&(((i%100-i%10))/10==(i/100%10)))
            {
                printf("%d\n",i);
            }
        }
        else if(i>=10000&&i<100000)
        {
            if(((i%10)==(i/10000))&&(((i%100-i%10))/10==(i/1000%10)))
            {
                printf("%d\n",i);
            }
        }
    }
    return 0;
}

C 解法, 执行用时: 3ms, 内存消耗: 296KB, 提交时间: 2022-05-22

#include<stdio.h>
int main()
{
    int n,i,a,b=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        b=0;
        a=i;
        while(a)
        {
            b=(a%10)+b*10;
            a=a/10;
        }
        if(b==i)
            printf("%d\n",b);
    }
}

C 解法, 执行用时: 3ms, 内存消耗: 296KB, 提交时间: 2022-05-22

#include<stdio.h>
int main()
{
    int a,i,num;
    scanf("%d",&a);
    for(i=1;i<=a;i++)
    {
        int t=0,num=i;
        while(num>0)
        {
            t=t*10+num%10;
            num=num/10;
        }
        if(t==i)
            printf("%d\n",i);
    }
    return 0;
}

上一题