一本通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.總結總結

   這種題一定一定要看一看會不會超值,

   可能先算出總數再進行其他運算的時候,

   這個總數已經爆掉了;

   當比較大的數不能成功運行的時候,

   就要優化自己的程序,

   比較正常的就是從程序里面開始算,用循環做,

 (就跟上面這個一樣)

   所以做題的時候還是要長點心啊!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM