题解区很多都不对,但我这个包对的
2025-08-12 16:36:32
发布于:上海
36阅读
0回复
0点赞
这道题其实挺难的,有几个注意事项:
1、不能用pow函数,因为pow返回值是浮点型。
2、也不能用常规的幂运算,需要用快速幂。
3、由于数值太大,long long也承受不了,每次运算都要取模,防止溢出。
4、如果b=0,结果应为a的0次方(也就是一)需要单独判断。
5、如果计算结果是星期日,需要单独判断,不然会输出0。
具体程序如下:
#include<iostream>
using namespace std;
int week(int n,int m){
long long r=1;
int x=n;
while(m!=0){
if(m%2)r*=x%=7;
x*=x;
m/=2;
}
return r%7;
}
int main(){
int n,m;
cin>>n>>m;
int j=week(n,m);
if(m==0)cout<<"1";
else if(j!=0)cout<<j;
else cout<<"7";
}
如果有遗漏或错误请在评论区说明。
如果觉得写的好就点个赞把。(doge
全部评论 2
看似贴主,实际骚扰考古
2025-08-13 来自 浙江
0看似考古,实则骚扰帖主
2025-08-12 来自 上海
0嘿 嘿 嘿
2025-08-12 来自 上海
0但其实前四个题解确实不能用
2025-08-12 来自 上海
0实际上套个快速幂板子就能 A 掉
2025-08-13 来自 上海
0
有帮助,赞一个