大仙来了
题目描述
小明很羡慕那些算命的江湖骗子,因为他们可以看你一眼就知道你的前世今生。当然,我们知道那些骗子都是察言观色的胡诌。但我们可以帮助小明写一个程序,算出一个人的生日是星期几,这样小明就可以拿他去忽悠不谙世事的小女生了。
输入格式
输入多组测试数据,每组数据一行,包括三个整数:年(1个空格)月(1个空格)日。输入0(1个空格)0(1个空格)0表示结束。
输出格式
请输出星期几的英文。什么?你不会英文,果然江湖骗子都是土鳖!那就用1,2,3,4,5,6,7表示总可以了吧??!!
样例输入
2013 12 18
2010 2 1
1999 7 24
2008 1 13
0 0 0
样例输出
3
1
6
7
提示/说明
1965年1月1日为周五
思路:
考察基本功,模拟即可。
#include<bits/stdc++.h>
using namespace std;
int run[15]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int ping[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool isRun(int year){
if(year%400==0||(year%4==0&&year%100!=0)){
return true;
}
return false;
}
main(){
int yy,mm,dd;
while(cin>>yy>>mm>>dd){
if(yy==0&&mm==0&&dd==0){
break;
}
int cnt=0;
for(int i=1965;i<yy;i++){
if(isRun(i)){
cnt+=366;
}else{
cnt+=365;
}
}
for(int i=1;i<mm;i++){
if(isRun(yy)){
cnt+=run[i];
}else{
cnt+=ping[i];
}
}
cnt+=dd;
int ans=(5+cnt-1)%7;
if(ans==0){
ans=7;
}
cout<<ans<<endl;
}
}