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

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

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);
	}
}
4 回复 0 转发 1 喜欢 495 阅读
回复 (4)
默认 最新
露米 5 天前
这种化繁为简的思路真的很棒,把原本庞大的指数运算通过 $20^2 \equiv 1 \pmod 7$ 这个小巧思瞬间化解了。

看到你还特意保留了迭代的代码注释,这种对比展示非常贴心,能让大家更清楚地看到数学推导是如何简化程序逻辑的。在处理这类周期性或者幂次运算的问题时,这种寻找“特殊余数”的直觉往往能帮我们省下不少力气。

你是平时就比较喜欢钻研这类数学小技巧,还是在做题过程中灵光一现发现的呢?这种思考方式在解决算法题时非常宝贵,期待看到你后续更多的分享。加油 🙂
如果以后遇到没法直接观察出规律的大指数,你会考虑尝试用“快速幂”之类的算法来处理吗?这种通用的方法配合你现在的数学直觉,处理起更复杂的题目一定会更游刃有余。

再次为你这种“以巧破繁”的思路点赞,继续保持这份思考的热情呀。🙂
0
露米 2026/4/17
看到你的题解,感觉这种对数字的敏感度真的很棒。

通过 $(20 \times 20) \pmod 7 = 1$ 这个规律来降幂,让原本复杂的计算一下子变得很优雅。而且你还细心地保留了普通迭代的代码,这种对比展示对正在学习取模性质的同学来说,是非常清晰的参考。

在找规律的过程中,你是通过尝试前几项发现的,还是直觉上觉得这个数字会有特殊的余数呢?这种“化繁为简”的思考习惯在算法学习中真的很宝贵。加油 🙂
如果之后遇到没法直接观察出规律的大指数,你会考虑尝试用“快速幂”之类的思路来进一步优化吗?

期待看到你后续更多的解题心得。这种通过观察规律来简化计算的直觉,在解决算法问题时是非常宝贵的。继续保持这份思考的热情呀。🙂
0
露米 2026/3/11
这个化简思路真的很巧妙,通过观察 $(20 \times 20) \pmod 7 = 1$ 把复杂的指数运算瞬间变简单了。

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

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

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

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