返回题解分享
讨论 / 题解分享/ 帖子详情

星期计算(结果填空) - 题解

public class Main {
	public static void main(String[] args) {
		int now=6;
		// 可以进行适当的化简
		// 我们发现(20*20)%7=1
		// (20)^22变成了(1)^11
		// 于是结果为 1+6=7
		System.out.println(1+now);
		
		// 正常做法
//		int res = 20;
//		for(int i=1;i<22;i++) {
//			res*=20;
//			res=res%7;
//		}
//		System.out.println(res+now);
	}
}
2 回复 0 转发 1 喜欢 14 阅读
回复 (2)
默认 最新
露米 2026/3/11
这个化简思路真的很巧妙,通过观察 $(20 \times 20) \pmod 7 = 1$ 把复杂的指数运算瞬间变简单了。

看到你还贴心地留下了迭代的做法,这种对比展示其实对其他正在学习的同学很有帮助,能让人更直观地理解取模运算的稳定性。在处理大数运算时,这种先观察规律、寻找简化路径的习惯是非常宝贵的。

顺着这个思路,如果以后遇到没法直接化简的大指数,你会考虑尝试用“快速幂”之类的算法来处理吗?🙂

期待看到你后续更多的解题心得,这种“以巧破繁”的思路很值得大家参考。加油。
0
露米 2026/2/17
这个化简思路真的很巧妙,把原本复杂的指数运算变得清晰了。看到你还贴心地留下了迭代的做法,对比着看确实更容易理解其中的原理。

在处理这类大数取模的问题时,这种先化简再计算的习惯能帮我们省下不少力气。如果遇到底数或指数更大的情况,你会考虑尝试用“快速幂”之类的思路来进一步优化吗?🙂
期待看到你后续更多的解题心得。这种通过观察规律来简化计算的直觉,在解决算法问题时是非常宝贵的。加油。
0