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

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

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
typedef long long ll;
using namespace std;
int main(){
	ll tianshu=1 ;
	for(int i=1;i<=22;i++){
		tianshu*=20;
		tianshu%=7;
	}
	int dayIn=6;
	int res=(6+tianshu-1)%7+1;cout<<res;
	
}
4 回复 0 转发 1 喜欢 12 阅读
回复 (4)
默认 最新
露米 4 天前
看到你分享的题解了,代码写得很扎实呢。

通过循环并在每一步进行取模运算,这种处理余数的方法非常稳妥,能有效防止数值过大。最后的计算逻辑也清晰地考虑到了星期循环的偏移,是个很棒的小细节。

我也注意到代码里定义了一个 dayIn 变量,如果把它运用到最后的输出计算中,代码的通用性会更好,以后遇到起始日期变动的情况也能轻松应对了。

顺便分享一个有趣的方向:如果这道题的指数变得非常大,比如 20 的 2022 次方,你觉得除了循环,还有什么办法能更高效地算出余数吗?

继续保持这种细致的解题习惯呀,期待看到你更多的思考分享 🙂
如果在解题过程中有了新灵感,或者遇到了其他有趣的问题,随时欢迎发出来。大家在这里一起讨论交流,学习的过程也会变得更有趣呢。

加油,祝你在接下来的挑战中也能保持这种好状态呀 🙂
0
露米 2026/3/30
看到你分享的题解啦,代码逻辑很清晰,这种一步步取模的方法处理得很稳妥。

特别喜欢你最后处理结果的那行代码:(6+tianshu-1)%7+1,这种处理 1-7 循环的小技巧非常实用,能看得出你在细节上花了不少心思。

我发现代码里的 dayIn 变量好像还在“待命”状态,如果把它带入到最后的计算里,代码的通用性会更强一些呢。另外,如果以后遇到更大的指数(比如 20 的 2022 次方),也可以尝试看看“快速幂”或者寻找“余数周期”的方法,或许会有不一样的发现。

继续保持这种踏实的解题状态呀,期待看到你后续更多的分享 🙂
如果在解题过程中有任何想交流的新想法,或者遇到了其他有趣的题目,随时都可以发出来。

在这里一起慢慢进步、互相启发,本身就是一件很温暖的事呢。加油 🙂
0
露米 2026/3/12
看到你的题解啦,思路很清晰呢。

在循环中及时进行取模运算(%7)是一个非常好的习惯,这样能有效避免数值溢出带来的困扰,处理得很细心。最后的日期转换逻辑也考虑到了星期循环的细节,读起来很直观。

这种利用余数处理周期性问题的思路,在解决这类填空题时非常高效。我注意到代码里的 dayIn 变量好像暂时没有用到,如果把它利用起来代替公式里的数字,代码的可读性可能会更高一点点。

顺便想和你探讨一下,如果这里的指数变得非常大(比如 20 的 2022 次方),你会考虑尝试用什么方法来进一步优化计算速度吗?

加油,继续保持这种细致的思考呀 🙂
如果以后在刷题过程中有了新的灵感,或者遇到了其他有趣的问题,也欢迎随时分享出来。大家一起讨论交流,学习的过程也会变得更有趣呢。

祝你在接下来的挑战中也能保持这种好状态呀 🙂
0
露米 2026/2/9
看到你的题解啦,思路很清晰呢。

在循环中及时进行取模运算(%7)是一个非常好的习惯,这样能有效避免数值溢出带来的困扰,处理得很细心。最后的日期转换逻辑也考虑到了星期循环的细节,读起来很直观。

这种利用余数处理周期性问题的思路,在解决这类填空题时非常高效。不知道你在写这段代码时,有没有尝试过如果指数变得更大(比如 2022 次方),代码运行效率会有什么变化呢?

期待看到你分享更多有趣的解法 🙂
顺便提一个小细节,代码里的 dayIn 变量好像暂时没有用到,是不是原本打算用它来代替数字 6 呢?如果把它利用起来,代码的可读性可能会更高一点点。

加油,继续保持这种细致的思考呀。
0