站点图标 陌路寒暄

小胖的幸运日

小胖的幸运日

时间: 1ms        内存:128M

描述:

小胖的幸运数字是15,所以他觉得如果当天的日期的月份和天数相加等于15时,就是他的幸运日了,请确定小胖的下一次幸运日距离今天还有多久

输入:

当天的日期 

输出:

距离下一次幸运日的天数

示例输入:

2018 12 02

示例输出:

1

提示:

参考答案(内存最优[1120]):

#include<stdio.h>
 
int main()
{
    int year,month,day;
    int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    scanf("%d %d %d",&year,&month,&day);
    if(year%4==0&&year%100!=0||year%400==0)days[2]++;
    if(month+day>15){
        int dayss = days[month]-day;
        printf("%d",(dayss+(15-month-1)));
    }else{
        printf("%d\n",(15-month-day));
    }
    return 0;
}

参考答案(时间最优[1]):

#include<iostream>
using namespace std;
int main()
{
	int y,m,d;
	cin>>y>>m>>d;
	int t = 0;
	int s = 0;
	if(m+d<=15)
	{
		cout<<15-(m+d)<<endl;
	}
	else if(m+d>15)
	{
		if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
		{
			t = 31 - d;
			if(m==12)
			{
				cout<<14+t<<endl;
			}
			else
			{
				cout<<15-m-1+t<<endl;
			}
		}
		if(m==2||m==4||m==6||m==9||m==11)
		{
			
			if(m==2)
			{
				if((y%4==0&&y%100!=0)||(y%400==0))
					t = 29 - d;
				else
					t = 28 - d;
				cout<<15-m-1+t<<endl;
			}
			
			else
			{
				t = 30 - d;
				cout<<15-m-1+t<<endl;
			}
		}
	}
	return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

退出移动版