#P42. 阅读代码,输出结果
阅读代码,输出结果
题目描述
int cnt = 0;
void build(int rt, int l, int r)
{
if(l > r) return;
cnt ++;
if(l == r) return;
int mid = (l + r) >> 1;
build(rt << 1, l, mid - 1);
build(rt << 1 | 1, mid + 1, r);
}
代码如上所示,现在我们的操作为输入一个数字,然后输出。主函数代码如下所示。
int n;
while(scanf("%d", &n) != EOF)
{
cnt = 0;
build(1, 1, n);
printf("%d\n", cnt);
}
现在,请你补全代码。
输入格式
多组输入。输入组数小于等于$10^5$。
在一行内输入一个正整数$n(1≤n≤10^5)$。
输出格式
对于每组输入,在一行中输出一个整数,表示$cnt$的值。
样例
1
2
1
2
来源
2022 HGNU-SWUT暑假联合集训