1083:计算星期几
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 50998 通过数: 22223
【题目描述】
假设今天是星期日,那么过a^b天之后是星期几?
【输入】
两个正整数a,b,中间用单个空格隔开。0<a≤100,0<b≤10000。
【输出】
一个字符串,代表过abab天之后是星期几。
其中,Monday
是星期一,Tuesday
是星期二,Wednesday
是星期三,Thursday
是星期四,Friday
是星期五,Saturday
是星期六,Sunday
是星期日。
分析:这道题和前几题一样是考验能否将数据缩小以避免超出数据所能表示的范围,一个星期有七天,也就是说超过七天后就是重复循环的了,我们计算一下就能发现只要对天数取余就能去掉重复的天数。
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int a, b;
cin >> a >> b;
int day = 1;//记录 a的b次方 天是几天
for (int i = 0; i < b; i++)
{
day = day * a;
day %= 7;//去掉重复的周数
}
switch (day)
{
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:
//注意,这里0才是代表星期天
cout << "Sunday";
break;
default :
break;
}
}