• lowbit运算


    lowbit(n)定义为非负整数n,在二进制表示下“最低位的1及其后面所有的0” 构成的数值。
    例如 n=10 二进制表示为(1010),则 lowbit (n) = 2 (10),
    当我们对计算出的 lowbit(n) 进行取log2操作 后,我们可以得到“n的二进制表示下最低位1的位置”,
    为了 得到n的二进制表示下所有1的位置 ,我们需要不断的把 n 赋值为 n-lowbit(n) ,直到n=0结束 。

    具体见代码 ,

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 #include<algorithm>
     6 #include<map>
     7 #include<set>
     8 #include<vector>
     9 #include<queue>
    10 #include<stack>
    11 #include<list>
    12 #include<unordered_map>
    13 using namespace std;
    14 #define ll long long 
    15 const int mod=1e9+7;
    16 const int inf=1e9+7;
    17 
    18 //const int maxn=
    19 
    20 int lowbit(int n)
    21 {
    22     return n & (-n);
    23 }
    24 
    25 int main()
    26 {
    27     ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    28     int num;
    29     while(cin>>num)
    30     {
    31         int temp=num;    
    32         temp=num;    
    33         while(temp)
    34         {
    35             int x=lowbit(temp);        
    36             temp-=x;        
    37             x=log2(x);        
    38             cout<<x<<endl; 
    39         }            
    40     }
    41     return 0;
    42 }
    大佬见笑,,
  • 相关阅读:
    input 正则
    .net ashx Session 未将对象引用到实例
    js 时间和时间对比
    c# Repeater 和 AspNetPager
    c#后台 极光推送到Android 和IOS客户端
    select scope_identity()
    redhat7.4安装git(按照官网从源码安装)
    redhat7.4安装gitlab
    ES6模板字符串
    初次接触webpack
  • 原文地址:https://www.cnblogs.com/xwl3109377858/p/11286078.html
Copyright © 2020-2023  润新知