B3996 [洛谷 202406GESP 模拟 三级] 小洛的数字游戏

题目描述

小洛有一个正整数 𝑛n,他会进行若干次下列操作:

  • 取出正整数 𝑛 的末位,记作 𝑥;
  • 将 𝑥平方之后,保留个位,放于 𝑛 的首位之前(特别地,如果 𝑥 为 0,则不进行该步);

上述两步合计为一次操作。例如有一个正整数 142,它可以进行如下操作:

  • 取出末尾的 2,原正整数变为 14;
  • 2^2=4,放于 14 首位之前成为 414,第一次操作完成;
  • 取出末尾的 4,原正整数变为 41;
  • 4^2=16,保留个位的 6,放于 41 的首位成为 641,第二次操作完成;
  • 以此类推……

现在小洛想知道,对于一个正整数 𝑛,能否进行不超过 𝑞 次操作让其变为正整数 𝑚。请你帮帮他。

输入格式

输入三个正整数 𝑛,𝑚,𝑞。

输出格式

如果能进行不超过 𝑞 次操作让正整数 𝑛 变为正整数 𝑚,则输出若干行,第 𝑖 行输出一个正整数表示进行第 𝑖次操作后的正整数 𝑛 的值。否则输出一行一个整数 −1。

输入输出样例

输入 #1

123 611 10

输出 #1

912
491
149
114
611

输入 #2

123 231 12345

输出 #2

-1

说明/提示

对于 30% 的数据,保证小洛实际只需要不超过 5

#include<bits/stdc++.h>
using namespace std;

int weishu(int n){///求位数
    int sum=0;
    while(n!=0){
        n/=10;
        sum++;
        
    }
    return sum;
}
long long cifang10(int n){//补0使用(判断第一位放前面)
    long long mul=1;
    for(int i=1;i<=n;i++)mul*=10;
    return mul;
}
int main(){
    int n,m,q;
    cin>>n>>m>>q;
    const int M=m;
    int a[q+10];
    for(int i=1;i<=q;i++){//加入n=142
        int g=n%10;//g=2
        n-=g;//142-2=140
        n/=10;//n=14
        int gf=(g*g)%10;//2*2=4
        n+=(gf*cifang10(weishu(n)));//重点来了!!!14+(4*1e2)=414  提示(不符合语法)1e2=100  4*100=400,400+14=414
        if(m==n){//等于M后直接停止
            break;
        }
      //测试//cout<<n;测试
       // return 0;测试
        a[i]=n;//、、存储计算过程
    }
    if(n!=m)cout<<-1;//bushi
    else{
        for(int i=1;i<=q;i++){
            if(a[i]!=0){
            	cout<<a[i]<<endl;//guocheng过程
       		}
            if(a[i]==0){//把if注释掉自己看
                cout<<m;//结果
                break;
            }
        }
    }
    return 0;
}

 次操作即可得到 𝑚;

对于所有数据,数据保证 1≤𝑛,𝑚≤109,1≤𝑞≤106。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
GESP(Global Engineering Software Proficiency)是一种全球认可的工程软件能力认证标准,而Python则是一种高级编程语言。根据题目要求回答,以下是关于GESP Python三级认证试卷6月的一些说明。 GESP Python三级认证试卷是一种考核Python编程能力的专业认证试卷,在 6 月份进行。这个认证试卷旨在评估考生在使用Python语言和相关工具进行软件开发和解决问题方面的能力。 考试内容通常包括理论知识和实际编程题。理论部分可能包括Python语言的基础知识、面向对象编程、异常处理、模块和包管理、文件处理等方面的问题。考生需要能够准确回答这些问题,展示对Python语言的深入理解。 而实际编程题目则是考察考生在Python语言下解决问题的能力。这些题目可能涉及数据结构算法、字符串处理、文件读写、数据库操作、网络编程等方面的内容。考生需要使用Python编写合适的代码,解决给定的问题。 GESP Python三级认证试卷的通过要求通常会根据不同考试中心的具体规定而有所不同。一般来说,考生需要在规定的时间内完成试卷,并达到一定的分数线才能获得认证。通过这个认证可以证明考生在Python编程方面具备较高的能力和经验,对于就业或者继续深入学习都有很大的帮助。 对于想要参加GESP Python三级认证试卷的考生来说,平时需要加强对Python语言的学习和实践,掌握相关的开发工具和库。还可以参加相关的培训课程和模拟考试,提前了解考试的要求和内容,这样可以更好地应对考试的挑战。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值