三天打渔两天晒C++

发布时间:2024年01月02日

新手小白记录c++代码编写日常? 有问题欢迎指出

题目:

Tom也是一个ACM爱好者,从2000年1月1日就开始了ACM/ICPC的练习,一直坚持到现在。可惜的是,他一直采用的是这种“三天打渔两天晒网”的训练方式,也就是说,每做三天的训练,一定会休息两天,如此反复,直到今天。

现在的问题是:给你一个日期,你能计算出这一天Tom是在训练还是休息吗?

Input

输入数据首先包含一个整数T(T<=20),表示有T组测试数据,然后是T行,每行包含一个格式如“YYYY/MM/DD”的日期,题目保证所有日期在2000年1月1日和今天之间

Output

对于每个测试用例,如果Tom在这一天是训练,则请输出“Fishing”,否则,请输出“Resting”。

Sample Input

2

2000/01/03

2000/01/04

Sample Output

Fishing

Resting

代码编写如下:

#include<iostream> ?//1599
using namespace std;

int main()
{
?? ?int n, y, m, d, i,t=0;
?? ?char p = '/';
?? ?cin >> n;
?? ?for (i = 0; i < n; i++)
?? ?{
?? ??? ?t = 0;
?? ??? ?cin >> y >> p >> m >> p >> d;
?? ??? ?int a[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
?? ??? ?if (y > 2000)? ? ?//计算年数
?? ??? ?{
?? ??? ??? ?int w ;
?? ??? ??? ?for (w=2000;w<y;w++)
?? ??? ??? ?{
?? ??? ??? ??? ?for (int k = 0; k < 12; k++)
?? ??? ??? ??? ??? ?t += a[k];
?? ??? ??? ??? ?if (w % 4 == 0 && w % 100 != 0||w%400==0)
?? ??? ??? ??? ??? ?t++;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?for (int k = 0; k <= m - 1; k++)
?? ??? ?{
?? ??? ??? ??? ?if (y % 400 == 0 || y % 4 == 0 && y % 100 != 0&&m>2)
?? ??? ??? ??? ??? ?t++;
?? ??? ??? ??? ?t += a[k];
?? ??? ?}
?? ??? ??? ?t = t - a[m-1] + d-1;
?? ??? ??? ?
?? ??? ?if (t % 5 <= 3)
?? ??? ??? ?cout << "Fishing" << endl;
?? ??? ?else
?? ??? ??? ?cout << "Resting" << endl;
?? ?}
}

文章来源:https://blog.csdn.net/xxxyanyuxxx/article/details/135308357
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。