第几天修改版【蓝桥杯真题】(c++实现)

上文链接:明码 C++函数库bitset【蓝桥杯真题】 (c++实现)

第几天修改版

y年m月d日是哪一年的第几天。
比如y年的1月1日是那一年的第一天,那么y年m月d日是哪一年的第几天。

输入

输入y m d

输出

输出一个整数

样例

输入
2000 7 7
输出
189

我的思路

  • 首先确定y年是闰年还是平年,根据俗话说:一三五七八十腊,三十一天永不差,四六九十一,三十天永不差,闰年二月二十九,平年二月二十八,构造平闰年数组进行加之即可。

算法展示

#include <iostream>
using namespace std;
bool is_leap(int year)
{
	return (year%4==0&&year%100!=0)||year%400==0; 
}	
int main()
{
    int y,m,d,ans=0;
    cin>>y>>m>>d;
    int L_m_d[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
    int nonL_m_d[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    
    if(is_leap(y))//判断闰年 
    {
    	for(int i =0;i<(m-1);i++)//记录1-(m-1)月天数 
    	{
    		ans+=L_m_d[i]; 
    	}
    	ans+=d;
    }
    else
	{
		for(int i =0;i<(m-1);i++)
    	{
    		ans+=nonL_m_d[i]; 
    	}
    	ans+=d;
    }
    cout<<ans<<endl;
	return 0;
}

下文链接:乘积尾零 因式分解【蓝桥杯真题】(c++实现)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河南-殷志强

希望我的文章能帮助到你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值