求大佬解救
查看原帖
求大佬解救
322250
Pnderneath✨楼主2020/8/5 19:40

【问题描述】

牛顿想找爱因斯坦玩(牛顿居然遇上了爱因斯坦。。。。。。),然而爱因斯坦只在幸运日出门,爱因斯坦认为的幸运日是这样的:给定一年(该年一定是平年)中的第X 天,把这一天表示成a 月b 日,第c 个星期(定义该年的第1 天到第7 天为第1 个星期,以此类推),如果a 是2 的倍数,b 是3 的倍数,c 是4 的倍数,那么爱因斯坦认为这天就是幸运日。牛顿表示还没吃早饭,希望好心的你帮助他判断某一天是不是幸运日。

【输入数据】

输入文件lucky.in:第一行为一个整数 T,表示测试数据组数;接下来T 行,每行表示一组测试数据;第2 到T+1 行,每行为一个整数X,含义如题目描述所示。

【输出数据】

输出文件lucky.out:共有T 行,每行为“Y”或“N”(不含引号),Y 表示该天为幸运日,N 表示不是幸运日。

【输入输出样例】

【样例数据说明】

一年中的第34 天是2 月3 日,第5 个星期,不是幸运日。一年中的第55 天是2 月24 日,第8 个星期,是幸运日。

【数据范围】

对于 100% 的数据,1≤T≤50,1≤X≤365

#include<bits/stdc++.h>
using namespace std;
int n,a,x,b,c,i,j;
int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	  {
	  	a=1;
	  	scanf("%d",&x);
	  	if(x%7==0) c=x/7;
	  	  else c=(x/7)+1;
		for(j=1;j<=12;j++)
		  {
		  	if(x==d[j]) a=j,b=d[j];
		    else if(x>d[j]) 
		      {
		  	    x-=d[j];
		  	    a=(j+1);
		      }
		    else if(x<=d[j]) b=x;
	      }
	    if(a%2==0&&b%3==0&&c%4==0) printf("Y\n");
	      else printf("N\n");
	  }
	return 0;
} 
2020/8/5 19:40
加载中...