csp试题2:日期计算

csp试题2:日期计算

题目

问题描述
      给定一个年份y和一个整数d,问这一年的第d天是几月几日?
      注意闰年的2月有29天。满足下面条件之一的是闰年:
      1) 年份是4的整数倍,而且不是100的整数倍;
      2) 年份是400的整数倍。
输入格式
      输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。
      输入的第二行包含一个整数d,d在1至365之间。
输出格式
      输出两行,每行一个整数,分别表示答案的月份和日期。
样例1
输入:

2015
80

输出:

3
21

样例2
输入:

2000
40

输出:

2
9

分析

      想要知道第d天是几月几日,首先要知道的是这一年中12个月份各自的天数,12个月中只有2月的天数是会变化的,我们需要根据不同年份来设置2月的天数。
      知道了12个月的天数后,用d依次去减每个月份的天数,当所得结果小于等于0时,该月份就是对应的月份数,进行这次减法前的d就是该月的日数。

代码

/*
20190910
ccf试题2:日期计算 
*/ 

#include <iostream>
using namespace std;

int main(){
	//接受数据
	int year;
	int days;
	cin >>year >>days;
	
	//计算日期
	//初始化月份数据 
	int month_days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	if((year%4 == 0 && year%100 != 0) || (year%400 == 0)){
		month_days[1] = 29;
	}	 
	//计算 
	int month = 0;
	int day;
	while(days > 0){
		day = days;
		days = days - month_days[month];
		month++;	
	}
	cout <<month<<endl;
	cout <<day<<endl;
	
	return 0;
} 

总结

      迄今为止见过的最简单的ccf试题2。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值