RSS
linjiazhen
分类
标签云
搜索
随机文章
最新评论
最新留言
链接
计数器
145095
SGU 115: Calendar
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=115
题目大意:
输出2001年的某天的星期几。
解题思路:
只要注意2001年的二月是28天,还要判断日期是否合法。
解题代码:
#include<iostream> using namespace std; bool ok(int n,int m){ if(m<=0||m>12) return false; if((m==1)||(m==3)||(m==5)||(m==7)||(m==8)||(m==10)||(m==12)) if(n<=0||n>31) return false; if((m==4)||(m==6)||(m==9)||(m==11)) if(n<=0||n>30) return false; if(m==2) if(n<=0||n>28) return false; return true; } int day(int n,int m){ return n+31*((m>1)+(m>3)+(m>5)+(m>7)+(m>8)+(m>10)) \ +30*((m>4)+(m>6)+(m>9)+(m>11))+28*(m>2); } int main(){ int n,m; while(cin>>n>>m){ if(ok(n,m)){ int w=day(n,m)%7; if(w) cout<<w<<endl; else cout<<7<<endl; } else cout<<"Impossible"<<endl; } return 0; }