1572.分發糖果

題目描述

過年了,N個學生站成一圈,按順時針方向依次編號爲1到N,等待他們的糖果。老師按照以下方法來分配糖果:

首先老師給1號和2號學生各一塊糖果,然後他沿着圓圈按照順時針方向繼續分發,跳過一個學生(3號),給下一個學生(4號)一塊糖果;繼續行走,跳過2個學生(5號和6號)給下一個學生(7號)一塊糖果,如此反覆進行。

問能否保證每個學生都能至少得到一塊糖果?

輸入

輸入有多組測試數據,每個測試數據是一個正整數N(2<=N<=1000000000)

輸出

對於每組測試數據輸出:“YES”或者“NO”

Code

#include<bits/stdc++.h>
using namespace std;
int n;
int tot;
int main()
{
	freopen("candy.in","r",stdin);
	freopen("candy.out","w",stdout);
	while (scanf("%d",&n) != EOF)
	{
		tot = 1;
		for (int i = 1;i <= n;i++)
		{
			tot = tot * 2;
			if (tot > n)
			{
				printf("NO\n");
				break;
			}
			if (tot == n)
			{
				printf("YES\n");
				break;
			}
		}
	}
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章