首页 > 第二届战神杯线上编程挑战赛月赛第一题:回文数

第二届战神杯线上编程挑战赛月赛第一题:回文数

题目详情:



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

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

 



输入描写叙述:

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

(0

输出描写叙述:

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

 





答题说明:



输入例子:

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 
#include 
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<


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

例如以下:

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




更多相关:

  •         Apache POI是一个开源的利用Java读写Excel,WORD等微软OLE2组件文档的项目。        我的需求是对Excel的数据进行导入或将数据以Excel的形式导出。先上简单的测试代码:package com.xing.studyTest.poi;import java.io.FileInputSt...

  • 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。 要取得a到b之间的...

  • 利用本征图像分解(Intrinsic Image Decomposition)算法,将图像分解为shading(illumination) image 和 reflectance(albedo) image,计算图像的reflectance image。 Reflectance Image 是指在变化的光照条件下能够维持不变的图像部分...

  • 题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解题: cl...

  • 题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:      5     /    2   6   /  1   3示例 1: 输入: [1,6,3,2,5] 输出...

  • 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3:输入: 10 输出: false 解释:...