#P0995. [NOIP2005普及组] 循环

news2024/12/25 1:02:46

题目描述

乐乐是一个聪明而又勤奋好学的孩子。他总喜欢探求事物的规律。一天,他突然对数的正整数次幂产生了兴趣。

image

 

众所周知,22 的正整数次幂最后一位数总是不断的在重复 2,4,8,6,2,4,8,6…2,4,8,6,2,4,8,6… 我们说 22 的正整数次幂最后一位的循环长度是 44(实际上 44 的倍数都可以说是循环长度,但我们只考虑最小的循环长度)。类似的,其余的数字的正整数次幂最后一位数也有类似的循环现象:

image

这时乐乐的问题就出来了:是不是只有最后一位才有这样的循环呢?对于一个整数 nn 的正整数次幂来说,它的后k位是否会发生循环?如果循环的话,循环长度是多少呢?

注意:

  1. 如果 nn 的某个正整数次幂的位数不足 kk,那么不足的高位看做是 00。
  2. 如果循环长度是 LL,那么说明对于任意的正整数 aa,nn 的 aa 次幂和 a+La+L 次幂的最后 kk 位都相同。

输入格式

共一行,包含 22 个整数 nn 和 kk。nn 和 kk 之间用一个空格隔开,表示要求 nn 的正整数次幂的最后 kk 位的循环长度。

输出格式

一个整数,表示循环长度。如果循环不存在,输出 -1−1。

输入数据 1

32 2

Copy

输出数据 1

4

Copy

数据范围与约定

对于 30 \%30% 的数据,满足 k \le 4k≤4

对于100 \%100% 的数据,满足 1 \le n < {10}^{100}1≤n<10100,1 \le k \le 1001≤k≤100

NOIP 2005 普及组 第四题

代码:

#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
using namespace std;
int t=1;
unsigned int n=0,k;
unsigned int xh[200];
int num;//记录有多少层
char s[200];
bool flag=0,flag2=0;
struct node{
    unsigned int v[200];
    int s;
}a,b,c,bas,ans,nn;
node multiple(const node a1,const node b1){ //高精度乘法部分
    int i,j,x=0;
    if(a1.s==1&&a1.v[0]==0)return a1;
    if(b1.s==1&&b1.v[0]==0)return b1;
    node c1={0};
    for(i=0;i<=100 && i<a1.s;i++){
        for(j=0;j<=100 && j<b1.s;j++){
            c1.v[i+j]+=a1.v[i]*b1.v[j];
            c1.v[i+j+1]+=c1.v[i+j]/10;
            c1.v[i+j]%=10;
        }
        c1.s=i+j;
        if(c1.v[i+j]!=0)c1.s++;
    }
    if(c1.s>k) c1.s=k+1;
    return c1;
}

int main(){
    int i,j;
    scanf("%s%d",s,&k);
    c.s=strlen(s);
    ans.v[0]=1;
    ans.s=1;
    for(i=0;i<c.s;i++) c.v[i]=s[c.s-i-1]-'0';
    bas=c;//原数备份,用作比较
    a=c;
    b=c;
    int k1;
    for(k1=0;k1<k;k1++){
        num=0;
        b=bas;
//        c=bas;
        do{
            b=multiple(a,b);
            num++;
        }while(num<10 && b.v[k1]!=bas.v[k1]);
        if(bas.v[k1]!=b.v[k1]){
            printf("-1");
            return 0;
        }
        b=a;
        for(j=0;j<num-1;j++)
             a=multiple(a,b);

        nn.s=1;
        nn.v[0]=num;
        ans=multiple(ans,nn);
    }
    i=100;
    while(ans.v[i]==0)i--;
    for( ;i>=0;i--)printf("%d",ans.v[i]);
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/820864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新《生产建设项目水土保持方案审查要点》要求下全流程水土保持应用

目录 专题一 水土保持常用法律法规、规范及文件解读 专题二 水土保持方案及监测、验收开展的流程 专题三 水土保持需要收集的资料 专题四 水土保持现场踏勘需要注意的事项 专题五 常见水土保持工程施工工艺流程 专题六 《生产建设项目水土保持方案审查要点》&#xff08;…

【Vue3基础】组件保持存活、异步加载组件

一、组件保持存活 1、需求描述 点击按钮跳转到其他组件后&#xff0c;原组件不会被销毁 2、知识整理 1&#xff09;组件生命周期 创建期&#xff1a;beforeCreate、created 挂载期&#xff1a;beforeMount、mounted 更新期&#xff1a;beforeUpdate、updated 销毁期&am…

【SCSS】网格布局中的动画

效果 index.html <!DOCTYPE html> <html><head><title> Document </title><link type"text/css" rel"styleSheet" href"index.css" /></head><body><div class"container">&l…

在排序数组中查找元素的第一个和最后一个位置——力扣34

文章目录 题目描述法一 二分查找 题目描述 法一 二分查找 int bsearch_1(int l, int r) {while (l < r){int mid (l r)/2;if (check(mid)) r mid;else l mid 1;}return l; }int bsearch_2(int l, int r) {while (l < r){int mid ( l r 1 ) /2;if (check(mid)) l …

第一个maven项目(IDEA生成)

第一个maven项目&#xff08;IDEA生成&#xff09; 步骤1 配置Project SDK 步骤2 配置maven File->Settings搜索maven

【Docker】Docker比虚拟机快的原因、ubuntu容器、镜像的分层概念和私有库的详细讲解

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

proteus常用元件图示和名称(持续更新...)

初学单片机,记录一下proteus常用的元件目录 proteus常用元件图示和名称1 SWITCH(一位开关)2 CAP(无极性电容)3 CAP-ELEC(极性电容)4 CRYSTAL(晶振)5 LED-BIBY(发光二极管)6 RES(电阻)7 BUTTON(按钮)8 AT89C51(经典单片机)9 BUS(总线)10 VCC(电源)11 GROUND(接地)12 BUZZER(蜂鸣…

C++实现矩阵乘法

本贴分享用C实现矩阵乘法计算的功能&#xff0c;具体内容请看代码和注释&#xff0c;这里单独说一明一部分代码块。 1.采用vector< vector<int>>的方式&#xff0c;可以实现无限度的二维动态数组&#xff0c;需要注意的是&#xff0c;对于C来说a[m][n]的写法是合法…

备战秋招 | 笔试强训20

目录 一、选择题 二、编程题 三、选择题题解 四、编程题题解 一、选择题 1、对于顺序存储的线性表&#xff0c;访问结点和增加结点的时间复杂度为&#xff08;&#xff09;。 A. O(n) O(n) B. O(n) O(1) C. O(1) O(n) D. O(1) O(1) 2、在下列链表中不能从当前结点出发访问…

NineData支持全版本的企业级Oracle客户端

Oracle 数据库是一款全球领先的关系型数据库管理系统&#xff0c;它为企业提供了高性能、高可用性和安全性的数据处理解决方案&#xff0c;被广泛应用于各个行业。对于 Oracle 数据库&#xff0c;大家都很熟悉&#xff0c;本文不再赘述。 近期&#xff0c;NineData 发布对 Ora…

云时代的运维正是不折不扣的架构师

1、引言 上学那会&#xff0c;每当作文中引用到张良这个典故&#xff0c;总喜欢用 “运筹帷幄之中&#xff0c;决胜千里之外” 来赞美张良雄才大略&#xff0c;指挥若定&#xff0c;现在还让我用的话&#xff0c;我会把这句话送给运维同学。 2013年左右&#xff0c;一朋友在某…

SOP/详解*和**/python数据结构(iter,list,tuple,dict)/ 解包

一、错误解决合集 1. > combined_seq.named_children() 2. isinstance 2th parameter : must be a type or tuple of types > 改为tuple&#xff0c;不要用列表。改为 LLLayer (nn.Conv2d,nn.Linear) 3. File “test.py”, line 90, in calculate_fin_fout print(“hi”…

Python生成自定义URL二维码并保存为图片文件

脚本简介描述&#xff1a; 我们的应用场景是网站提供了Android客户端的二维码&#xff0c;可以进行扫码直接下载。所以使用下方的脚本可以自动生成URL路径二维码&#xff0c;并保存到指定路径下展示在网站上。 代码展示 PS&#xff1a;主要用到了 qrcode第三方模块 [rootnod…

Flask-SocketIO

一、简介&#xff1a; Flask-SocketIO使Flask应用程序可以实现客户端和服务器之间的低延迟双向通信。客户端应用程序可以使用 Javascript、Python、C、Java和Swift中的任何SocketIO客户端库或任何其他兼容客户端来建立与服务器的永久连接。 二、安装&#xff1a; pip instal…

java高并发系列 - 第22天:JUC底层工具类Unsafe

java高并发系列 - 第22天:JUC底层工具类Unsafe 这是java高并发系列第22篇文章,文章基于jdk1.8环境。 本文主要内容 Unsafe基本介绍获取Unsafe实例Unsafe中的CAS操作Unsafe中原子操作相关方法介绍Unsafe中线程调度相关方法介绍park和unpark示例Unsafe锁示例Unsafe中对volati…

window安装mysql

1、下载mysql 官网下载地址&#xff1a;MySQL :: Download MySQL Community Server 国内阿里云镜像下载地址&#xff1a;mysql镜像_mysql下载地址_mysql安装教程-阿里巴巴开源镜像站 2、安装 我下载的是mysql-5.7.36-winx64.msi安装版本 选择安装类型&#xff1a; 选择安装位…

【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?

目录 前言 wrk 优点 缺点 jmeter 优点 缺点 locust 优点 缺点 总结 资料获取方法 前言 当你想做性能测试的时候&#xff0c;你会选择什么样的测试工具呢&#xff1f;是会选择wrk&#xff1f;jmeter&#xff1f;locust&#xff1f;还是loadrunner呢&#xff1f; 今…

台式机/工控机通过网线共享笔记本电脑无线网络(待续)

1、 将台式机通过网线和笔记本连接。 2、 将笔记本的“本地连接”和“无线网络连接”的ipv4均设置为自动获取。 4.修改台式机的IP地址为如下&#xff08;对应笔记本信息&#xff09; IP地址为192.168.XXX.12 子网掩码为255.255.255.0 默认网关为192.168.XXX.1 首选DNS为192.16…

蓝桥云课ROS机器人旧版实验报告-06工业机械臂-使用Moveit!

项目名称 实验六 使用MoveIt&#xff01; 成绩 内容&#xff1a;机械臂、体系结构、简单运动规划、抓取放置任务 实验记录&#xff08;70分&#xff09; 按实验一完成升级配置。 如果需要查阅moveit详细资料&#xff0c;参考如下官网截图&#xff1a; 本实验需要安装…

python面试题【题目+答案】

最近遇到了一份python的面试题&#xff0c;题目比较简单&#xff0c;时间控制在一个小时之内。以下是面试的题目跟答案&#xff0c;答案不代表最优解&#xff0c;只是当时所想到的一些思路&#xff0c;接下来将分享给大家。 1. 给出下面打印结果 答案&#xff1a; 12.0 6.0…