优秀数字
序号:#86 难度:一般 时间限制:300ms 内存限制:10M
描述
判断一个数字是否为优秀数字。优秀数字定义为,一个整数M(M>=0),有2条规则: 规则1:存在一个正整数N(N>=0),使得M=2^N+1; 规则2:存在一个正整数N(N>=0),使得M=2^N-1; 若同时满足规则1和规则2,则输出Very Good 若满足规则1而不满足规则2,则输出Good 若不满足规则1而满足规则2,则输出Bad 若都不满足,则输出Normal
输入
一个整数M(M>=0)
输出
输出该数属于的类型
输入样例
3
5
7
8
输出样例
Very Good
Good
Bad
Normal
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
long long int s,i,j,t=0,t1=0,x=1;
cin>>s;
for(i=0;i<64;i++)
{
for(j=0;j<i;j++)
{
x=x*2;
}
if(s==(x+1))
t=1;
if(s==(x-1))
t1=1;
x=1;
}
if(t==1)
{
if(t1==1)
{
cout<<"Very Good";
}
else
{
cout<<"Good";
}
}
else
{
if(t1==1)
{
cout<<"Bad";
}
else
{
cout<<"Normal";
}
}
cout<<endl;
return 0;
}