打鱼还是晒网

中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是在“打鱼”,还是在“晒网”。

解题过程:

1.计算从1990年1月1日开始至指定日期一共多少天;

2.由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;

3.根据余数判断他是在“打鱼”,还是在“晒网”。

若     余数为1、2、3,则他是在“打鱼”

否则 是在“晒网”

((年能被4除尽 且 不能被100除尽) 或 能被400除尽,则该年是闰年,否则不是闰年。 )

(闰年二月为29天,平年为28天。)


源码:

#include<iostream.h>

bool dayushaiwang(int year, int month, int day)
{
	int Fyear=1990;
	int Fmonth=1;
	int Fday=1;
	int x=0;
	int y=0;
	int z=0;
	int i=0;
	
	for(i=Fyear;i<year;i++)
	{
		if((i%4)==0)
		{
			x=x+366;
		}
		else 
		{
			x=x+365;
		}
	}

	for(i=Fmonth;i<month;i++)
	{
		switch(i)
		{
		case 1:
			y=y+31;
			break;
		case 2:
			if((year%4)==0)
			{
				y=y+29;
			}
			else
			{
				y=y+28;
			}
			break;
		case 3:
			y=y+31;
			break;
		case 4:
			y=y+30;
			break;
		case 5:
			y=y+31;
			break;
		case 6:
			y=y+30;
			break;
		case 7:
			y=y+31;
			break;
		case 8:
			y=y+31;
			break;
		case 9:
			y=y+30;
			break;
		case 10:
			y=y+31;
			break;
		case 11:
			y=y+30;
			break;
		case 12:
			y=y+31;
			break;
		}
	}

	z=day-Fday;

	int sum=0;
	sum=x+y+z;
	sum=sum%5;
	if(sum>=0 && sum<3)
	{
		cout<<"dayu"<<endl;
		return 0;
	}
	else
	{
		cout<<"shaiwang"<<endl;
		return 1;
	}

	return 0;
 
}

void main()
{
	int year=0;
	int month=0;
	int day=0;
	cout<<"please input year:"<<endl;
	cin>>year;
	if(year<1990)
	{
		cout<<"the data is error ..."<<endl;
		return;
	}
	cout<<"please input month:"<<endl;
	cin>>month;
	if(month<0 || month>13)
	{
		cout<<"the data is error ..."<<endl;
		return;
	}
	cout<<"please input day:"<<endl;
	cin>>day;
	if(day<0 || day>31)
	{
		cout<<"the data is error ..."<<endl;
		return;
	}

	bool result=0;
	result= dayushaiwang(year,month,day);
	if(result)
	{
		cout<<"shaiwang"<<endl;
	}
	else
	{
		cout<<"dayu"<<endl;
	}

}


效果:



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值