1 条题解

  • 0
    @ 2025-8-24 21:40:35

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 易颖杰
    **

    搬运于2025-08-24 21:40:35,当前版本为作者最后更新于2017-09-28 10:34:37,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    哈哈,这题好像没有完整题解,只有管理员的一个部分代码,那我就来发一波吧,我吧管理员的改成了完整的了,这思路确实很好,具体在代码里说明:

    #include<iostream>
    #include<cstdio>
    #define ll long long
    using namespace std;
    ll l,r,w,t=1;//t是累乘的记录变量,初值要赋为1
    int main()
    {
        cin>>l>>r>>w;
        bool found=0;//found表示有没有找到符合条件的数的一个布尔变量
        if (l==1)//如果最左边是1,特判一下
        {
            found=true;//表示找到
            printf("1 ");//输出1
        }
        if(w>1)//如果w等于1的话会死循环,一直是1
        {
            while(t<l/w||(t==l/w&&(l%w)))//这个语句是先把t乘到最左的边界,其实我觉得可以放到下面的循环里,加一个条件判断
                t=t*w;
            while (t<=r/w)//在l到r间找数
            {
                t*=w;
                found=true;//找到数
                printf("%lld ",t);//输出找到的数
            }
        }
        if(!found) cout<<-1;//如果没有找到符合条件的数,输出-1
        cout<<endl;//文末换行好习惯,2333~
        return 0;
    }
    
    • 1

    信息

    ID
    1797
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    0
    已通过
    0
    上传者