<>试题 A: 星期计算 【填空题】

答案:7
解析:直接对所给数进行取余,然后直接再加6(注意:不能直接让20^22+6再对7进行取余操作,这是不对的,这个6可以看成已经取余过了。)
直接取余的话可以使用java自带的Math.pow(数,次方),或者使用BigInteger(BigInteger和int的区别就是前者范围没有限制,所以可以直接使用)。
实现代码:
方法一:使用BigInteger解
public class one { public static void main(String[] args) { BigInteger
bigInteger= BigInteger.valueOf(20).pow(22).mod(BigInteger.valueOf(7)); int ha =
(bigInteger.intValue()+6)%7; System.out.println(ha); } }
方法二:直接使用Math.pow()
public static void main(String[] args) { System.out.println(Math.pow(20, 22)%7+
6); }
<>试题 B: 山 【填空题】

答案:3138

解析:通过分析这道题,虽然给的是一个范围,但是考的还是判断一个数是否是回文数且前一半是不递减,我们实现判断回文和不递减方法后,通过一个for循环便可以求出结果。因为数据量比较大,所以比较耗时,大概快一分钟。
实现代码:
方法一:判断是否回文字符串使用双指针进行判断:
public class two { public static void main(String[] args) { int count = 0; for(
int i =2022;i<=2022222022;i++) { if(check(i) && isHuiWen(i)) { count++; } }
System.out.println(count); } private static boolean check(int num) { String s =
num+""; for(int i =0;i<s.length()/2;i++) { if(s.charAt(i)>s.charAt(i+1)) return
false; } return true; } private static boolean isHuiWen(int num) { String s =
num+""; for(int i =0,r=s.length()-1;i<r;i++,r--) { if(s.charAt(i) != s.charAt(r)
) return false; } return true; } }
方法二:使用StringBuilder.reverse().toString.equals()来判断
这里补充一下三者用法区别:

public class two { public static void main(String[] args) { int count = 0; for(
int i =2022;i<=2022222022;i++) { if(check(i) && isHuiWen1(i)) { count++; } }
System.out.println(count); } private static boolean check(int num) { String s =
num+""; for(int i =0;i<s.length()/2;i++) { if(s.charAt(i)>s.charAt(i+1)) return
false; } return true; } private static boolean isHuiWen1(int num) { String snum
= num+""; StringBuilder stringBuilder = new StringBuilder(snum); return
stringBuilder.reverse().toString().equals(snum); } }
<>试题 C: 字符统计【代码题】

分析:方法一:可以通过定义一个容量为26的数组来记录每个字符出现的次数,然后查找出次数最大的字符,通过遍历一遍for循环,来使按照字母表顺序输出。
补充知识点:
键盘输入的时候,next和nextline的区别,因为可能输入空的字符串,所以这里使用nextline来进行接收。

代码实现:
public class three { public static void main(String[] args) { Scanner scanner =
new Scanner(System.in); String str = scanner.nextLine(); int[] arr = new int[26]
; String str1 = ""; for(int i =0;i<str.length();i++) { arr[str.charAt(i)-'A']++;
} int max = Integer.MIN_VALUE; for(int i =0;i<26;i++) { max = Math.max(max, arr[
i]); } for(int i=0;i<26;i++) { if(arr[i] == max) { str1=str1+""+(char)(i+'A'); }
} System.out.println(str1); } }

技术
今日推荐
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信