NYOJ_75 日期計算 (判斷這一天是這一年中的第幾天)
阿新 • • 發佈:2019-02-03
如題,輸入一個日期,格式如:2010 10 24 ,判斷這一天是這一年中的第幾天。
分析:
官方給的最優答案用了for 和switch語句結合,十分巧妙。
程式碼
/* 如題,輸入一個日期,格式如:2010 10 24 判斷這一天是這一年中的第幾天。 */ #include<iostream> using namespace std; bool leapyear(int a) //判斷閏年 { // if((a%4==0) && (a%100 || a%400==0) ) return true; //可以被4整除但是不能被100 或者可以被400整除的為閏年 if( (a%4==0 && a%100 )|| a%400 == 0 ) return true; else return false; } int main() { int a[3]={0}; int n; cin>>n; int day[12]={31,0,31,30,31,30,31,31,30,31,30,31}; //預設閏年 while(n--) { int dayNum = 0; for(int i=0;i<3;i++) { cin>>a[i]; } if(leapyear(a[0])) day[1]=29; //判斷閏年來改變2月的天數 else day[1]=28; for(int i=0; i+1 <a[1];i++) { dayNum += day[i]; } cout<<dayNum+a[2]<<endl; } }