专栏文章

题解:P5720 【深基4.例4】一尺之棰

P5720题解参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@mipbwutq
此快照首次捕获于
2025/12/03 09:29
3 个月前
此快照最后确认于
2025/12/03 09:29
3 个月前
查看原文

题意

题目给定一个数字,让你对其不停除以 22,并且向下取整。问几次操作后可以得到 11

思路

我们要使用一个不同于 for 的循环,它的名字叫做 while
它的语法如下:
CPP
while(/**/) {
    /**/;
    /**/;
}
第一行内所填入的是一个 bool 类型的参数,在每一次操作前,若这个变量为真,那么进行大括号内的操作,否则跳出循环。
需要注意的是,括号内的参数是运行的条件而不是退出循环的条件
那么我们来“翻译”一下题目:如果变量 aa 大于 11,那么将 aa 除以 22,并向下取整。
想懂这个后就可以开始写代码了。

代码

CPP
#include<iostream>
using namespace std;

int main() {
    long long n, ans = 1; // 需要注意的是,答案的初始值应该设置为 1
    cin >> n;
    while(n > 1) {// while 循环
        ans++;
        n /= 2; 
    }
    cout << ans;
    return 0;
}

评论

1 条评论,欢迎与作者交流。

正在加载评论...