zoukankan      html  css  js  c++  java
  • Hkhv喜欢二进制 NBUT

    题目链接https://vjudge.net/problem/NBUT-1666

    hkhv学长最近对二进制数很感兴趣,喜欢一切0和1组成的数。现在有一个十进制整数n,问你1到n之间有多少个数是只有0和1组成的类似二进制的数,输出他们的个数。

    题解:如果某位大于‘1’,就将其后所有的位置为‘’1’‘,然后当作二进制求他多大,他多大说明就有几个比它小的只有‘0’,‘1’组成的整数

    代码

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<string>
    #include<cmath>
    using namespace std;
    
    int main()
    {
        string s;
        
        while(cin >> s){
            for (int i = 0; i < s.size(); i++)
            {
                if (s[i] > '1')
                {
                    for (int j = i; j < s.size(); j++)
                    {
                        s[j] = '1';
                    }
                    break;
                }
            }
            // cout << s << endl;
            int ans = 0;
            reverse(s.begin(), s.end());
            for (int i = 0; i < s.size(); i++)
            {
                if (s[i] == '0') continue;
                else ans += (int)pow((double)2, (double)i);
            }
            printf("%d
    ", ans);
        }
        return 0;
    }
  • 相关阅读:
    Redis(二)
    Redis
    Nginx
    Linux的环境配置
    深入mysql
    SpringBoot入门
    Thymeleaf入门
    Mybatis之resultMap
    Mybatis入门
    使用第三方实现微信登录
  • 原文地址:https://www.cnblogs.com/hulian425/p/12237023.html
Copyright © 2011-2022 走看看