初学java第三天,PTA上面的一道测试题。测试已通过
用户从键盘输入一个整数,程序将判断这个数是几位数并输出其位数,并判断这个数是否是回文数,是则输出Y,否则输出N。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。
输入格式:
整数
输出格式:
几位数
是否是回文数
输入样例:
在这里给出一组输入。例如:
12121
输出样例:
在这里给出相应的输出。例如:
5
Y
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码如下:
/**
* @author 不知棋者
* @time 202208271723
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String s = new String();//这里没有选这数组,根据题目要求使用String类型更加简单。
Scanner sc = new Scanner(System.in);
Running r = new Running();//用一个单独的类来实现判断回文。
s = sc.next();
int r1 = s.length();//直接使用.length()进行计数
System.out.println(r1);//输出计数结果。
System.out.print(r.running(s));
sc.close();//关闭扫描器的好习惯要保持。
}
}
class Running{
public char running(String s) {
char jug = 'Y';//设置变量用来判断以及返回
for(int i = 0; i < (s.length()/2); i++) {//直接使用for循环来判断回文。
if(s.charAt(i) == s.charAt(s.length()-i-1)) {
jug = 'Y';
}else {
jug = 'N';
break;
}
}//通过charAt()方法,对String中的每一个元素进行判断,如果有不符合的,jug就为N。
return jug;
}
}