第二届战神杯线上编程挑战赛月赛第一题:回文数 博客分类: java java编程
程序员文章站
2024-03-22 10:15:28
...
题目详情:
Njzy学习了回文串后联想到了回文数,他希望统计出一个区间内的所有回文数。现在给定一个闭区间[a,b],求这个区间里有多少个回文数。
比如[20,30],只有一个回文数那就是22.
输入描述:
输入包含多组测试数据,每组测试数据包含两个整数a,b,
(0<a<=b<10^6)。
输出描述:
对于每组测试数据输出相应的答案。
答题说明:
输入样例:
1
10
20
30
300
400
输出样例:
9
1
10
在做这道题的时候,又遇到了一个坑爹问题.容我慢慢道来.
Code :
import java.util.Scanner; public class TestOne { public static int Test(int m,int n) { int count=m; if (m>n) { m=n; n=count; } count=0; for (int i = m; i <= n; i++) { String str0=""+i; char ch0[]=str0.toCharArray(); int k=ch0.length; char ch1[]=new char[k]; for (int j = 0; j < k; j++) { ch1[j]=ch0[k-j-1]; } String str1=new String(ch0); String str2=new String(ch1); if (str1.equalsIgnoreCase(str2)) { count++; } } return count; } public static void main(String[] args) { Scanner sc=new Scanner(System.in); while (true) { int m=sc.nextInt(); int n=sc.nextInt(); System.out.println(Test(m, n)); } } }
其实一开始我的代码不是这个样子的,因为 题目中给出的输入输出样例是:
输入样例:
1
10
20
30
300
400
输出样例:
9
1
10
我以为是输入多组数据之后,然后答案一次性输出,结果呢,当然悲剧了.
实际中的真实结果应该是这样子的:
1
10
9
20
30
1
300
400
10
是输入一组数据,然后输出一个结果.......,最后代码改成了以上的无限循环的输入与输出才正确.
唉,希望我是唯一这样悲剧的吧,,,祝大家好运,不要像我这么坑的不上道.
当然,其实还有个规则我没有试过.那就是在类中另外写一个方法,然后在一个方法调用该方法,不知道这样子在规则上是不是可以通过提交....悲剧的求告知.......