题目1:已知今天是星期六,请问2022 天后是星期几?
注意用数字1到7表示星期一到星期日。
解题思路:
使用java函数Math.pow()函数,可以计算某个数的幂次方,这样就可以计算2022是多少
用第一步计算出来的数字%7,因为星期是1到7,所以需要对7求余。
因为当天是星期六,所以最后一步需要加上6
public class Main{
public static void main(String[] args) {
double res = Math.pow(20, 22);
res %= 7;
System.out.println(res + 6);
}
}
题目2: 这天小明正在学数数。他突然发现有些正整数的形状像一座“山”,123565321、145541,它们左右对称(回文)且数位上的数字先单调不减,后单调不增。小明数了很久有也没有数完,他想让你告诉他在区间【2022,2022222022】中有多少个数的形状像一座“山”。
解析思路:
定义一个函数,判断某个数是回文且左边是单调不减
使用循环从2022开始到2022222022,循环调用前面定义的函数,并且开始计数
最后输出计数的数值。
public class Main {
public static void main(String[] args) {
int cnt = 0;
for (int i = 2022; i <= 2022222022; ++ i)
{
if (check(i)) cnt ++;
}
System.out.println(cnt);
}
public static boolean check(int num)
{
char[] chs = ("" + num).toCharArray();//把num转换成字符数组
int start = 0;
int end = chs.length - 1;
while(start < end)
{
// 如果首尾元素不同 或者没有往中间递增 那么就是false
if (chs[start] != chs[end] || chs[start] > chs[start + 1]) return false;
start ++;
end --;
}
return true;
}
}