zoukankan      html  css  js  c++  java
  • 第二届战神杯线上编程挑战赛月赛第一题:回文数

    题目详情:


    Njzy学习了回文串后联想到了回文数,他希望统计出一个区间内的全部回文数。如今给定一个闭区间[a,b],求这个区间里有多少个回文数。

    比方[20,30],仅仅有一个回文数那就是22.

     


    输入描写叙述:

       输入包括多组測试数据,每组測试数据包括两个整数a,b,

    (0<a<=b<10^6)。

    输出描写叙述:

       对于每组測试数据输出对应的答案。

     



    答题说明:


    输入例子:

    1

    10

    20

    30

    300

    400

    输出例子:

    9

    1

    10


    解题思路:

    total[i]代表从1到i之间有多少回文数,预处理一下,要求a和b之间有多少回文数,直接输出 total[b]-total[a-1] 就能够了。这题第一次提交的时候悲剧了,原因是数组越界

    const int maxn=1000000+10;   int total[maxn] ,后来预处理total数组的时候,从1一直循环到了maxn,越界了,数组下标最大是 maxn-1,哎,悲剧。

    题外话:这个月非常少写博文,正忙着期末考试复习,一定得把成绩提上去。


    代码:

    #include <iostream>
    #include <string.h>
    using namespace std;
    const int maxn=1000000;
    int num[10];
    int total[maxn+10];//total[i]代表从1到i之间有多少回文数
    
    bool pd(int n)//推断是否是回文数
    {
        int k=0;
        int temp=n;
        while(temp)
        {
            num[++k]=temp%10;
            temp/=10;
        }
        for(int i=1;i<=k/2;i++)
        {
            if(num[i]!=num[k-i+1])
                return false;
        }
        return true;
    }
    
    void cal(int n)//预处理total[i]
    {
        int k=0;
        for(int i=1;i<=n;i++)
        {
            if(pd(i))
                k++;
            total[i]=k;
        }
    }
    
    int main()
    {
        total[0]=0;
        cal(maxn);
        int a,b;
        while(cin>>a>>b)
        {
            cout<<total[b]-total[a-1]<<endl;
        }
        return 0;
    }
    

    后来在网上看到别人推断是否是回文数的函数比我的要好:

    例如以下:

    bool pd(int n)//推断是否是回文数
    {
        int temp=n;
        int m=0;
        while(temp)
        {
            m=m*10+temp%10;//m为n的逆序
            temp/=10;
        }
        return n==m;
    }


  • 相关阅读:
    考研系列 HDU2241之早起看书 三分
    考研系列 HDU2242之空调教室 tarjan
    HDU5880 Family View ac自动机第二题
    HDU2222 Keywords Search ac自动机第一题
    hiho1514 偶像的条件 lower_bound
    HDU1800 hash+去前导0
    阿里云数据库自研产品亮相国际顶级会议ICDE 推动云原生数据库成为行业标准
    MaxCompute 图计算开发指南
    MaxCompute Mars开发指南
    基于MaxCompute的数仓数据质量管理
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4044130.html
Copyright © 2011-2022 走看看