第一次周賽J題
阿新 • • 發佈:2018-12-10
問題連結:https://vjudge.net/problem/HDU-2005
問題PE點:(1)輸入資料多組 (2)資料格式為YYYY/MM/DD
程式說明:定義一個結構包含年月日,用函式計算天數
AC程式碼:
#include <iostream> using namespace std; struct date { int year,month,day; }a; int days(int x,int y,int z,int&o) { int h=((y-1)/2); int i=(y/2); if(y==1) { o=z; } if(y==2) { o=31+z; } if(y>2&&y<8) { if(x%400==0||(x%4==0&&x%100!=0)) { if(y%2!=0) { o=31*h+30*(h-1)+29+z; } else { o=31*i+30*(i-2)+29+z; } } else { if(y%2!=0) { o=31*h+30*(h-1)+28+z; } else { o=31*i+30*(i-2)+28+z; } } } else if(y>7) { if(x%400==0||(x%4==0&&x%100!=0)) { if(y%2!=0) { o=31*(h+1)+30*(h-2)+29+z; } else { o=31*i+30*(i-2)+29+z; } } else { if(y%2!=0) { o=31*(h+1)+30*(h-2)+28+z; } else { o=31*i+30*(i-2)+28+z; } } } return o; } int main() { date *p=&a; int x,y,z,b; char h,i; int&o=b; while(cin>>(p->year)>>h>>(p->month)>>i>>(p->day)) { if(h=='/'&&i=='/') { days(p->year,p->month,p->day,b); cout<<b<<endl; } } }