• Candy Distribution_找规律


    Time Limit: 1000MS   Memory Limit: 65536K
    Total Submissions: 6012   Accepted: 3341

    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

    【思路】找规律,是2的指数输出yes否则no

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    using namespace std;
    int main()
    {
        long long n;
        while(~scanf("%lld",&n))
        {
           while(n)
           {
               if(n&1) break;//二进制数最右位为1时,若n为1,则为2的指数,否则不能除2了也要退出
               n>>=1;//相当于每次除2
    
           }
           if(n==1) printf("YES
    ");
           else printf("NO
    ");
        }
        return 0;
    }
  • 相关阅读:
    【QCon笔记】Native 和 Web 融合
    点透
    测试
    Moom for mac 最棒的窗口管理软件
    Egret白鹭H5小游戏开发入门(三)
    Egret白鹭H5小游戏开发入门(二)
    Egret白鹭H5小游戏开发入门(一)
    关于Canvas模糊的问题
    利用Canvas实现360度浏览
    JS中取整以及随机颜色问题
  • 原文地址:https://www.cnblogs.com/iwantstrong/p/5838042.html
Copyright © 2020-2023  润新知