惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
IT之家
IT之家
博客园_首页
博客园 - 【当耐特】
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
G
Google Developers Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
GbyAI
GbyAI
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
H
Help Net Security
T
Tailwind CSS Blog
B
Blog RSS Feed
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
博客园 - 叶小钗
雷峰网
雷峰网
量子位

皓子的小站

网站字体应用之坑——font-family 篇 糟糕的 meta name="theme-color" How to Automatically Track Newly Supported ESLint Rules in Oxlint How to Gradually Migrate from ESLint to Oxlint (Without Breaking Everything) 静态资源预压缩:零运行时开销,极致节省带宽 CVE-2025-70886 Proof of Concept (PoC) | A Script to Crash Halo CMS Comment Backend 自定义网页鼠标指针——一段曲折的旅程 CVE-2025-70886 漏洞复现/PoC | 一个脚本让 Halo CMS 评论后台瘫痪 2025 年终总结 & 博客两周年 老用户专享!已有 Halo 专业版授权可免费升级商业版 自动追踪 Oxlint 对 ESLint 规则的新增支持 Halo 贡献者证书与实体周边盲盒开箱 博客评论系统指南 CDN 回源跟随配置导致登录异常问题排查 SCDN 免费赞助计划:助力高质量博客&博客圈 锐捷校园网:网络共享与带宽叠加方案(哈理工案例) ESLint 到 Oxlint 渐进式迁移快速上手指南 Fixing Vite Breaking Inline JS & CSS in Thymeleaf Templates 解决 Vite 破坏 Thymeleaf 模板内联 JS & CSS 的方法 我的博客,为什么是月更? 博客俱乐部一周年纪念品开箱 网站字体加载之坑——format 篇 经历 1000000000 次 DDoS 请求攻击后,我总结了三条经验 题解分享:[AtCoder Beginner Contest 414 E] Count A%B=C 题解分享:[蓝桥杯 2025 国 Python A] 杨辉三角 P12876 FiF口语训练破解刷分教程(适用于 Windows) 不要与蠢人辩论 小心网络地雷·续篇 当心网络组织“开往”·续篇 当心网络组织“开往”
题解分享:HRBUST 1132 &#277...
HowieHz · 2024-09-02 · via 皓子的小站

题目描述

题目描述 点我展开

Description

元帅得到的反馈信心很少,原来元帅了解到,大家都不愿意做水题,可是元帅自己就是一个水题王啊,前前后后水题水了300多道,水题王现在看看大家是个什么水的级别,决定在模拟一个水题吧。

如果一个正整数m表示成二进制,它的位数为n(不包含前导0),称它为一个n二进制数。所有的n二进制数中,1的总个数被称为n对应的水数。
例如,3二进制数总共有4个,分别是4(100)、5(101)、6(110)、7(111),他们中1的个数一共是1+2+2+3=8,所以3对应的水数就是8。

Input

给你一个整数T,表示输入数据的组数,接下来有T行,每行包含一个正整数n(1<=n<=25)。

Output

对于每个n ,在一行内输出n对应的水数。

Sample Input

3
1
2
3

Sample Output

1
3
8

思路

n 枚举二进制数 从最高位,各个位上出现 1 的次数
1 1 0 1
2 10 11 2+1
3 100 101 110 111 4+2+2
4 1000 1001 1010 1011 1100 1101 1110 1111 8+4+4+4

可以看出 n = x 时,n 对应的水数是

(x-1)**2 + ((x-2)**2)*(x-1)  # Python code

实现

#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;

int main()
{
    int lines;
    cin >> lines;
    while (lines--)
    {
        int n;
        cin >> n;
        cout << fixed << setprecision(0) << (pow(2, (n - 1)) + pow(2, (n - 2)) * (n - 1)) << endl;
    }
    return 0;
}

注意点

如果不加 << fixed << setprecision(0),当 n=26,输出值会变成 2.18104e+08