列表

详情


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;
}

上一题