NC15152. 计算一年中的第几天
描述
今年的第几天?
输入年、月、日,计算该天是本年的第几天。
输入描述
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
输出描述
输入可能有多组测试数据,对于每一组测试数据,
输出一个整数,代表Input中的年、月、日对应本年的第几天。
示例1
输入:
1990 9 20 2000 5 1
输出:
263 122
C 解法, 执行用时: 3ms, 内存消耗: 404K, 提交时间: 2021-08-03 19:48:09
#include <stdio.h> #define isLeap(i) ((i%4==0&&i%100!=0)||(i%400==0)) int days[13]={0,0,31,59,90,120,151,181,212,243,273,304,334}; int year,month,day; int main(){ while(~scanf("%d %d %d",&year,&month,&day)){ printf("%d\n",(days[month]+day)+(isLeap(year)&&month>2)); } return 0; }
C++(clang++ 11.0.1) 解法, 执行用时: 2ms, 内存消耗: 396K, 提交时间: 2022-10-13 13:29:59
#include<bits/stdc++.h> using namespace std; int main() { int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int y,m,d,sum=0; cin>>y>>m>>d; for(int i=1;i<m;i++) sum+=mon[i]; sum+=d+(y%4==0&&y%100||y%400==0); cout<<sum; }