zoukankan      html  css  js  c++  java
  • poj3372

    Candy Distribution
    Time Limit: 1000MS   Memory Limit: 65536K
    Total Submissions: 5868   Accepted: 3274

    Description

    N children standing in circle who are numbered 1 through N clockwise are waiting their candies. Their teacher distributes the candies by in the following way:

    First the teacher gives child No.1 and No.2 a candy each. Then he walks clockwise along the circle, skipping one child (child No.3) and giving the next one (child No.4) a candy. And then he goes on his walk, skipping two children (child No.5 and No.6) and giving the next one (child No.7) a candy. And so on.

    Now you have to tell the teacher whether all the children will get at least one candy?

    Input

    The input consists of several data sets, each containing a positive integer N (2 ≤ N ≤ 1,000,000,000).

    Output

    For each data set the output should be either "YES" or "NO".

    Sample Input

    2
    3 
    4

    Sample Output

    YES
    NO
    YES

    Source

    这是一个复杂的数学问题,但是可以通过小数据猜测出来,最后发现只要是2的幂就行,否则不行
    #include<cstdio>
    using namespace std;
    int main()
    {
        int n;
        while(scanf("%d",&n)==1)
        {
            while(n%2==0)
                n/= 2;
            if(n==1)
                printf("YES
    ");
            else
                printf("NO
    ");
        }
        return 0;
    }
  • 相关阅读:
    ServletConfig类
    坑爹的去哪儿网订酒店经历
    python + opencv + pycharm +语音生成
    最近看到的工作要求
    pip in windows
    路由器外接硬盘做nas可行吗?
    阅读201706
    scrum学习
    学习concurrency programming进展
    Reactor/Proactor的比较 (ZZ)
  • 原文地址:https://www.cnblogs.com/shenben/p/5578786.html
Copyright © 2011-2022 走看看