南初


私信TA

用户名:H2030823016

访问量:4104

签 名:

-------------请以上同学上台领奖!----------------

等  级
排  名 275
经  验 5770
参赛次数 9
文章发表 27
年  龄 0
在职情况 学生
学  校 贺州学院
专  业

  自我简介:

TA的其他文章

解题思路:

边算幂边算模
简单举例子:


求3的3次方是星期几:

    一般解法:3*3*3%7=6(鉴于a,b取值,超限)

    转念一想,相当于四则运算中的,乘除法,那么乘除的先后循序就不影响最终结果了

    换一下循序:3*3%7*3   分解:-->    3*3=9,   9%7=2,   2*3=6

    这样就能巧妙的将a的值控制在int范围内


注意事项:

非要说注意事项的话,就是星期天的时候,a%7=0

参考代码:

#include<bits/stdc++.h>

using namespace std;

int main()

{

     int a,b,n;

     cin>>a>>b;

     n=a;//标记一下a的初始值

     for(int i=1;i<=b;i++){

         if(i==1) a=a;//a的1次方还是a

         else a*=n;//循环每次都*a的初始值,即n

         a%=7;//

     }

     switch(a){

         case 1:cout<<"Monday";break;

         case 2:cout<<"Tuesday";break;

         case 3:cout<<"Wednesday";break;

         case 4:cout<<"Thursday";break;

         case 5:cout<<"Friday";break;

         case 6:cout<<"Saturday";break;

         case 0:cout<<"Sunday";break;

     }

     return 0;

}


 

0.0分

3 人评分

  评论区

  • «
  • »