• 一本通1083 计算星期几


    【题目描述】

    假设今天是星期日,那么过ab天之后是星期几?

    【输入】

    两个正整数a,b,中间用单个空格隔开。0<a100,0<b10000

    【输出】

    一个字符串,代表过ab天之后是星期几。

    其中,Monday是星期一,Tuesday是星期二,Wednesday是星期三,Thursday是星期四,Friday是星期五,Saturday是星期六,Sunday是星期日。


    1.回刷前面没做的题的时候做到的。这是一个非常水的题嘛,直接开搞,暴力一点。

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    int main()
    {
    	int a,b;
    	cin>>a>>b;
    	int x=pow(a,b);
    	int y=x/7;
    	int z=x-7*y;
    	if(z==1)
    	cout<<"Monday";
    	if(z==2)
    	cout<<"Tuesday";
    	if(z==3)
    	cout<<"Wednesday";
    	if(z==4)
    	cout<<"Thursday";
    	if(z==5)
    	cout<<"Friday";
    	if(z==6)
    	cout<<"Saturay";
    	if(z==0)
    	cout<<"Sunday";
    	return 0; 
    }
    

     好水真的好水...一点意思都没有

    2.然后我就交了.......

       蛤?!

       为嘛只得了十分?

    3.带进给的3和2000,果然不行,可能爆int了,让我看看怎么搞。

       既然到最后再算余数不行,

       那就每乘上一个a的时候都把余数算出来,循环b次,这样应该就能保证不爆int了。

       话不多说,打代码

    for(int i=1;i<=b;i++)
    	{
    		z*=a;
    		z%=7;
    	}
    

     做一个这样的循环,到最后输出的结果就能不爆int了。

       让我们带进去交一遍,

       这次果然好了。

    4.总结总结

       这种题一定一定要看一看会不会超值,

       可能先算出总数再进行其他运算的时候,

       这个总数已经爆掉了;

       当比较大的数不能成功运行的时候,

       就要优化自己的程序,

       比较正常的就是从程序里面开始算,用循环做,

     (就跟上面这个一样)

       所以做题的时候还是要长点心啊!

  • 相关阅读:
    搭建vue开发环境的步骤
    widow怎么结束某端口占用
    替换数据库表中某个代码段中某个字段的某一段字符串sql
    sql优化
    scssmap对象访问
    IntelliJ IDEA 和 webstorm更换主题
    css滚动条样式
    redis set
    【LeetCode】128. 最长连续序列
    第二章 模型评估
  • 原文地址:https://www.cnblogs.com/Jiangxingchen/p/12243885.html
Copyright © 2020-2023  润新知