1.【问题描述】
已知今天是周六,请问20的22次方后是星期几?
注意用数字1--7表示星期一到星期日
方法一:运用java中的BigInteger(大整数)api来求解 |
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
BigInteger bigInteger = BigInteger.valueOf(20).pow(22).mod(BigInteger.valueOf(7));
int result = (6 + bigInteger.intValue()) % 7;
System.out.println(result == 0 ? 7 : result);
}
}
其中pow()为幂运算
mod()用于返回两个数相除的余数
方法二:运用java简单运算求解 |
public class Main {
public static void main(String[] args) {
int ans = 1;
for (int i = 0; i < 22; i++) {
ans = ans * 20 % 7;
}
int result = (6 + ans) % 7;
System.out.println(result == 0 ? 7 : result);
}
}
2.【问题描述】
给定一个只包含大写字母的字符串S,请你输出其中出现次数最多的字母。如果有多个字母均出现了多次,按字母表的顺序依次输出所有这些字母。
【输入格式】
只包含大写字母的字符 串 |
【输出格式】
若干个大写字母 |
【样例输入】
BABBACAC |
【样例输出】
AB |
解法代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
char[] ch = scanner.nextLine().toCharArray();
int[] counts = new int[26];
for (int i = 0; i < ch.length; i++) {
counts[ch[i] - 'A'] += 1;
}
int max = counts[0];
String result = "A";
for (int i = 1; i < counts.length; i++) {
if (counts[i] > max) {
max = counts[i];
result = "" + (char) (i + 'A');
} else if (counts[i] == max) {
result += (char) (i + 'A');
}
}
System.out.println(result);
}
}