美文网首页
WOJ-313-K尾数相等数

WOJ-313-K尾数相等数

作者: iDucky131 | 来源:发表于2020-01-19 20:20 被阅读0次

首先找到pow(K,N)>1000的最小的N,然后求K的N次方,并保证后三位相同。
如何保证后三位相同,就是对1000取余数相同即可;我们利用一个a[1001]保存每个余数,其中下标表示对应的余数(对1000取余数,余数不可能大于1000),数组中存储的为对应的次方,只要找到一个不是-1的元素则表明寻找到了两个满足条件的元素。
注意使用:(x*y)%c=((x%c)*(y%c))%c
代码如下:

#include <iostream>
#include <cstring>
#include <cmath>

using namespace std;
int main(){
    int number,M,N;
    int a[1001];//用来存储余数
    cin>>number;
    while(number!=0){
        memset(a,-1, sizeof(a));//初始化为-1
        M=N=0;
        while(pow(number,N)<1000)
            N++;
        int temp=pow(number,N);
        temp%=1000;
        a[temp]=N;
        for(M=N+1;;M++){
            temp=((number%1000)*temp)%1000; //(x*y)%c=((x%c)*(y%c))%c
            if(a[temp]==-1)
                a[temp]=M;
            else
                break;
        }
        cout<<M+a[temp]<<endl;
        cin>>number;

    }
    return 0;
}

相关文章

  • WOJ-313-K尾数相等数

    首先找到pow(K,N)>1000的最小的N,然后求K的N次方,并保证后三位相同。如何保证后三位相同,就是对100...

  • 自学Python:寻找自守数

    什么是自守数? 自守数是指一个数的平方的尾数等于该数自身的自然数。例如,5的平方=25,尾数等于5,25的平方=6...

  • python3求和小工具:给定开始结尾数字及步长,以步长为间隔,

    说明 给定起始数,结尾数及步长,计算从起始数开始,以步长为间隔,到结尾数为止的所有数字的和,可以指定保留结果小数位...

  • shell 基础

    用seq命令生成递减序列 基本用法 以指定增量从首数开始打印数字到尾数。对于第三种模式,当首数大于尾数时,增量需要...

  • 0.984米约等于多少米?

    小数的近似数,是建立在整数的近似数(省略万后面的尾数,省略亿后面的尾数)以及小数的意义与性质的基础之上进行学习的。...

  • 高次方数的尾数

    1.问题描述 求13的13次方的最后三位数。 2.源码实现 3.编译源码 4.运行及其结果

  • 2020尾数(之一)

    原创‖茹云 2020,即将结束,一路走来不容易; 它,裹挟着生命无数,埋没生命无数,又重生生命无数; 2020,它...

  • python笔记day6

    补充: == 和 is == --- 判断两个数据的值是否相等 is --- 判断地址是否相等 python数...

  • 生男生女计算公式

    生男生女计算公式1: 怀孕农历月份双乘+孕妇农历生日月份-怀孕时虚龄+19=,得出结果数尾数为单,是男孩;尾数为双...

  • R语言-矩阵与行/列等长的向量 作除法

    矩阵与 矩阵列数相等的向量作整除 矩阵与 矩阵行数相等的向量作除法

网友评论

      本文标题:WOJ-313-K尾数相等数

      本文链接:https://www.haomeiwen.com/subject/kicdzctx.html