zoukankan      html  css  js  c++  java
  • Codeforces 579A. Raising Bacteria

    You are a lover of bacteria. You want to raise some bacteria in a box.

    Initially, the box is empty. Each morning, you can put any number of bacteria into the box. And each night, every bacterium in the box will split into two bacteria. You hope to see exactly x bacteria in the box at some moment.

    What is the minimum number of bacteria you need to put into the box across those days?

    Input

    The only line containing one integer x (1 ≤ x ≤ 109).

    Output

    The only line containing one integer: the answer.

    Examples
    Input
    5
    Output
    2
    Input
    8
    Output
    1
    Note

    For the first sample, we can add one bacterium in the box in the first day morning and at the third morning there will be 4 bacteria in the box. Now we put one more resulting 5 in the box. We added 2 bacteria in the process so the answer is 2.

    For the second sample, we can put one in the first morning and in the 4-th morning there will be 8 in the box. So the answer is 1.

    题解:题意很简单找2的次方 下面两种方法

    解法一:(树状数组)

     1 #include <cstdio>
     2 #include <string>
     3 #include <cstring>
     4 #include <algorithm>
     5 #include <cmath>
     6 #include <iostream>
     7 using namespace std;
     8 #define lowbit(x) x&(-x)
     9 int main()
    10 {
    11     int n,t;
    12     while(cin>>n){
    13         t=0;
    14         while(n){
    15             t++;
    16             n-=lowbit(n);
    17         }
    18         cout<<t<<endl;
    19     }
    20     return 0;
    21 }

    解法二:(除以二迭代)

     1 #include <cstdio>
     2 #include <string>
     3 #include <cstring>
     4 #include <algorithm>
     5 #include <cmath>
     6 #include <iostream>
     7 using namespace std;
     8 int main()
     9 {
    10     int n,t;
    11     while(cin>>n){
    12         t=0;
    13         while(n){
    14             if(n&1) t++;
    15             n/=2;
    16         }
    17         cout<<t<<endl;
    18     }
    19     return 0;
    20 }
  • 相关阅读:
    enter事件处方方法
    vue 关于父组件无法触发子组件的事件的解决方法
    iview表格高度自适应只需要三步即可
    子组件触发父组件的方法
    组件之间的方法
    年与日时分秒各种格式 补0位的方法
    //定义一个函数,删除首个数组元素
    input标签内容改变的触发事件
    jQuery表单校验jquery.validate.js的使用
    jQuery BlockUI 实现锁屏
  • 原文地址:https://www.cnblogs.com/wydxry/p/7381430.html
Copyright © 2011-2022 走看看