1 条题解

  • 0
    @ 2025-9-26 12:32:45

    bitset方法:

    #include <bits/stdc++.h>
    using namespace std;
    
    /*
      题意:
        输入一个二进制串(长度 n ≤ 30),输出它对应的十进制数。
    
      思路:
        - 直接读入 n(其实 n 仅用于限制长度)。
        - 读入一个字符串 s(仅由 '0' 和 '1' 构成)。
        - 使用 bitset<30> 将 s 转为一个 30 位二进制数。
          注意:bitset 构造时从右到左对应最低位到最高位。
        - 通过 bitset.to_ulong() 或 bitset.to_ullong() 获得十进制值。
    */
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
    
        int n;
        string s;
        cin >> n >> s;
    
        // 用 bitset<30> 接收输入(支持长度 ≤ 30)
        bitset<30> bits(s);
        // 输出十进制表示
        cout << bits.to_ulong() << "\n";
        return 0;
    }
    
    • 1

    信息

    ID
    191
    时间
    1000ms
    内存
    64MiB
    难度
    5
    标签
    递交数
    39
    已通过
    16
    上传者