1 条题解

  • 0
    @ 2025-8-24 21:16:18

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar ShiRoZeTsu
    AFOed

    搬运于2025-08-24 21:16:17,当前版本为作者最后更新于2024-05-20 17:00:52,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    Source & Knowledge

    2024 年 5 月语言月赛,由洛谷网校入门计划/基础计划提供。

    题目大意

    给定一个正整数 nn,请你将 nn 不停地除以 22,并输出此时的商和余数,直到 n=0n = 0 为止。

    题目分析

    这道题显然要使用循环结构。由于我们并不知道要循环几次,所以考虑使用 while 循环。

    首先读入 nn。注意数据范围是 1n10181 \leq n \leq 10^{18},因此要使用 long long

    long long n;
    cin >> n;
    

    接下来实现循环。由于我们要一直输出答案直到 n=0n= 0,所以 while 循环的条件就是 n0n \neq 0。然后在循环体内直接输出商和余数,每次输出后将 nn 除以 22 即可:

    while(n != 0) {
        cout << n/2 << ' ' << n%2 << '\n';
        n /= 2;
    }
    

    视频讲解

    • 1

    信息

    ID
    10123
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者