1. 程式人生 > >nyoj 782 星期幾?【日期+快速冪】

nyoj 782 星期幾?【日期+快速冪】

星期幾?

時間限制:500 ms  |  記憶體限制:65535 KB 難度:2
描述
                     Acmer 小魚兒 埋頭ku算一道題 條件:已知給定 一日期 告訴你這一天是 星期 n,讓你計算在未來的m的p次方的天數後是星期幾?他很苦惱,聰明的你能幫助他嗎?
輸入
有多組測試資料,每組測試資料以包含三個整數n,m,p(n<8,m<50,p>10)
輸出
輸出過了這麼多天後是星期幾
樣例輸入
3 2 20
5 3 100
樣例輸出
7
2
上傳者


思路:

         通過快速冪並不斷對結果取餘,然後看看餘數為幾,就將原來的星期數加上幾,然後輸出,但是別忘了,在輸出之前有可能相加得到的數大於7,要將大於7的部分通過取餘把它去掉就行了!

程式碼:

#include <stdio.h>
int n,m,p,s;
void M()
{
	s=1;
	while(p)
	{
		if(p%2!=0)
		{
			s=(s*m)%7;
		}
		m=(m*m)%7;
		p/=2;
	}
	s=s%7;
}
int main()
{
	while(scanf("%d%d%d",&n,&m,&p)!=EOF)
	{
		M();
		if(n+s>7)
		printf("%d\n",(n+s)%7);
		else
		printf("%d\n",n+s); 
	}
	return 0;
}