PTA今天打鱼还是晒网?(bug记录)

这篇文章描述了一个编程题目,要求根据给定的日期规则判断小明是打鱼还是晒网。使用C++实现了一个函数来计算总天数并确定小明当天的行为。
摘要由CSDN通过智能技术生成

作者 张志梅

单位 青岛大学

老师说:“每日一题,必将成功。” 而小明遵从“三天打鱼两天晒网”的古训。小兰来找小明出去玩,小明说,那要看看今天我是打鱼还是晒网。勤奋的你帮小明算算吧?

输入格式:

输入多行,每行一个日期,第一行的日期是小明开始“三天打鱼两天晒网”的日子,接下来每一行日期是小兰来找小明出去玩的日子。日期格式如“2024-2-18”。

输出格式:

对每一个小兰找小明出去玩的日子,输出一行“Fishing”或“Drying”,分别代表小明今天打鱼或晒网。

输入样例:

2024-2-16
2024-2-18
2024-3-20

输出样例:

Fishing
Drying

一道很经典的日期题,只不过要注意日期问题。

在算好日期后,0~2是打鱼,其余是晒网。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl "\n"

ll n,m;
ll yue[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

bool run(ll x){
	return x%4 == 0 && x%100 != 0 || x%400 == 0;
}

ll found(ll x ,ll y ,ll z){
	ll sum=z;
	for(ll i = 0 ; i < x ; i ++){
		if(run(i))sum+=366;
		else sum += 365;
	}
	for(ll i = 1 ; i < y ; i ++)sum+=yue[i];
	if(run(x) && y > 2)sum++;
	return sum;
}

void solve(){
	ll x,y,z,bz=0,a,b,c;
	char e;
	cin >> a >> e >> b >> e >> c;
	while(cin >> x >> e >> y >> e >> z){
		bz=found(a,b,c);
		bz=found(x,y,z)-bz;
        bz%=5;
		if(bz < 3)cout << "Fishing" << endl;
		else cout << "Drying" << endl;
	}
	return;
}

int main(){
	ll t=1;//cin >> t;
	while(t--)solve();
	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值