蓝桥杯 一年中的第几天(日期问题)
问题描述
输入一个日期,输出该日期是当年的第几天。
输入描述
输入文件中有多个测试数据,每个测试数据占一行,为3个整数y、m、d。输入文件最后一行为3个0,代表输入结束。
输出描述
对每个测试数据,输出占一行,为一个数值,代表该日期是当年的第几天。
样例输入
2016 3 1
0 0 0
样例输出
61
运行限制
- 最大运行时间:1s
- 最大运行内存: 32M
#include<iostream> using namespace std; bool judge(int u) { return (u%4==0&&u%100!=0)||u%400==0;//闰年的判断 } int main() { int year,month,d; while(cin>>year>>month>>d) { int day[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; if(year==0&&month==0&&d==0) break;//这里采用的是每次都进行对数组初始化所以不采用else处理 if(judge(year)) day[2]=29; int sum=0; for(int i=1;i<month;i++) { sum+=day[i];//对前面的整月份进行处理求和 } sum+=d;//对最后一个月进行计算相加 cout<<sum<<endl; } return 0; }