hdu 2005 第幾天?(c語言)
阿新 • • 發佈:2018-12-16
hdu 2005 第幾天?
題目描述
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 193611 Accepted Submission(s): 68291
Problem Description 給定一個日期,輸出這個日期是該年的第幾天。
Input 輸入資料有多組,每組佔一行,資料格式為YYYY/MM/DD組成,具體參見sample input ,另外,可以向你確保所有的輸入資料是合法的。
Output 對於每組輸入資料,輸出一行,表示該日期是該年的第幾天。
Sample Input 1985/1/20 2006/3/12
Sample Output 20 71
Author lcy
問題解答
#include <stdio.h> int main() { int year,month,day; while(scanf("%d/%d/%d",&year,&month,&day)!=EOF) { if(((year%4==0)&&(year%100!=0))||(year%400==0)) { int amount=0; for(int i=1;i<month;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) amount+=31; if(i==4||i==6||i==9||i==11) amount+=30; if(i==2) amount+=29; } printf("%d\n",amount+day); } else { int amount=0; for(int i=1;i<month;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) amount+=31; if(i==4||i==6||i==9||i==11) amount+=30; if(i==2) amount+=28; } printf("%d\n",amount+day); } } }
筆記
- 閏年的定義:第一種閏年是可以被4整除但不能被100整除;第二種閏年是可以被400整除。
- 這個程式碼唯一可取的應該是邏輯思維,這樣寫要是被老師看到會被諷刺死的,優秀的程式碼應該是視覺化程度很高的,通過呼叫函式進行簡化,並且分塊呈現。不過好在程式短,可以一口氣吞下,而且也AC了,就懶得改了(gif.哭笑)