2657 - 数字帝
吴壕最近喜欢上了研究数字的问题,虽然数字帝是雯神,但是吴壕表示不服。于是吴壕想出了一个问题来难雯神了,给你一个数n(n<10^7),要你判断他是否有这样的一个序列,这个序列中1-n所有数都有两个,也就是说其中有两个1,两个2。。。。两个n。并且 两个1之间要有一个数,两个2之间要有两个数。 比如,如果n=3 那么这个序列是312132 雯神去问学霸,学霸表示不要问我这种弱智的问题,这样雯神犯难了。请帮帮雯神。
Input
多组输入,每组数据一个数n
Output
是否存在这样的序列,如果存在输出Y 否则输出N
Examples
Input
3 4 2
Output
Y Y N
Hint
4的序列是 41312432
Solution C
#include <stdio.h> #include<math.h> int main() { int m,n,i,j,k; while(scanf("%d",&n)!=EOF) { m=0; k=3; if(n<=2) printf("N\n"); else { for(i=0;i<n;i++) { m+=k; k++; } if((m-2*n)%2==0) printf("Y\n"); else printf("N\n"); } } }
Solution C++
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> using namespace std; int main() { int n; while(scanf("%d",&n)!=EOF) { if(n==0) return 0; if(n%4==0||(3*n-1)%4==0) printf("Y\n"); else printf("N\n"); } return 0; }
Hint
4的序列是 41312432