代码借鉴SCAU-OJ(感谢!!)

题目:1076 K尾相等数

时间限制:500MS  内存限制:65536K
提交次数:251 通过次数:80

题型: 编程题   语言: G++;GCC

 

Description

从键盘输入一个自然数K(99999999>K>1),若存在自然数M和N(M>N),使得K的M次方和K的N次方均大于或等于1000,
且它们的未尾三位数相等,则称M和N是一对“K尾相等数”。请编程序,输出K尾相等数中M+N最小值。

输入样例

输出样例

 思路:

核心就是m是要>n的,所以就要先确定一个,然后再确定另外一个的,然后用了一个a数组,下标是不同的后三位,然后存放的值是m次方后这个数的后三位是这个下标,t用来暂时的存放k

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
int n,m,a[1005],i,j,k,t;//n和m就是题目中说到的次方了,然后a数组的下标其实是t%1000的余数,
//值就是当t的后三位数是这个下标的话此时对应的次方数了
memset(a,0,sizeof(a));
scanf("%d",&k);
if(k>=1000)//当已经是大于等于1000的话说明m已经满足了
{
t=k;
m=1;
}//思路就是先确定一个次方是满足的m,之后再搞另外一个次方即可了
else//如果输入的数小于1000的话就继续乘,在乘的同时就不断的递增m
{
t=k;
m=1;
while(t<1000)
{
t*=k;
m++;
}
}
while(1)
{
t%=1000;//把t设置为t的后三位数
if(a[t]>0)break;//这里才是结束的条件,由于开始的时候初始化a数组的每个值都是0了,
// 而这个判断大于0就退出是因为如果a[t]大于0的话说明我们已经赋值过了,访问过了,也就是说之前我们得到了一个k的次方值等于这个下标t的,而这个次方被存放在了这个a[t]内,然后之后遍历又一次访问到了a[t],也就是说此时的次方和之前访问过了之后存放在c[t]的次方是满足题目条件的,所以break出来就吧此时的次方也就是m和之前已经存放的次方a[t]相加就是最小的了

a[t]=m++;//把a数组的下标设置成是t的后三个余数的,然后数组存的值就是此时t=k^m,吧这个m存放在这个数组里面

t*=k;//不断连乘直到再次访问相同的后三个数

}
printf("%d",a[t]+m);
return 0;
}

SCAU-1076 K尾相等数的更多相关文章

  1. 1076 K尾相等数

    时间限制:500MS  内存限制:65536K提交次数:251 通过次数:80 题型: 编程题   语言: C++;C Description 从键盘输入一个自然数K(99999999>K> ...

  2. nyoj212-k尾相等数

    212-K尾相等数 内存限制:64MB时间限制:3000msSpecial Judge: No accepted:0submit:0 题目描述: 输入一个自然数K(K>1),如果存在自然数M和N ...

  3. K尾相等数(模运算)

    Description 从键盘输入一个自然数K(K>1),若存在自然数M和N(M>N),使得K^M^和K^N^均大于或等于1000,且他们的末尾三位数相等,则称M和N是一对"K尾 ...

  4. 查找第K小的数 BFPRT算法

    出处 http://blog.csdn.net/adong76/article/details/10071297 BFPRT算法是解决从n个数中选择第k大或第k小的数这个经典问题的著名算法,但很多人并 ...

  5. 乱序数组中第k大的数(顺序统计量)

    该问题是顺序统计量中十分经典的问题. 使用快排中的分区法,将第k大的数排序.若双向扫描分区加上三点中值法或绝对中值法,可以保证在 O(n) 时间里找出第k大的数. 补充:可以直接使用C++STL中的n ...

  6. *HDU2852 树状数组(求第K小的数)

    KiKi's K-Number Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  7. 线性时间O(n)内求数组中第k大小的数

    --本文为博主原创,转载请注明出处 因为最近做的WSN(wireless sensor network)实验要求用3个传感器节点接受2000个包的数据并算出一些统计量,其中就有算出中位数这么一个要求, ...

  8. 京东2017校园招聘笔试题 【第K个幸运数】

    题目描述 4和7是两个幸运数字,我们定义,十进制表示中,每一位只有4和7两个数的正整数都是幸运数字. 前几个幸运数字为:4,7,44,47,74,77,444,447... 现在输入一个数字K,输出第 ...

  9. POJ 2985 The k-th Largest Group(树状数组 并查集/查找第k大的数)

    传送门 The k-th Largest Group Time Limit: 2000MS   Memory Limit: 131072K Total Submissions: 8690   Acce ...

随机推荐

  1. C++ Qt基础知识

    时间如流水,只能流去不流回. 学历代表你的过去,能力代表你的现在,学习能力代表你的将来. 学无止境,精益求精. 记录C++ Qt的基础知识学习记录 <C++ Qt设计模式(第二版)>

  2. python小例子(三)

    1.提高Python运行速度的方法 (1)使用生成器,节约大量内存: (2)循环代码优化,避免过多重复代码的执行: (3)核心模块使用cpython,pypy等: (4)多进程,多线程,协程: (5) ...

  3. C/C++——strcpy函数的实现

    题目:     已知strcpy函数的原型是:         char * strcpy(char * strDest,const char * strSrc);     1.不调用库函数,实现st ...

  4. 暑期集训20190726 跳动(skip)

    [题目描述] 福州三中的操场上有着数不尽的跳动的小朋友. 当然善于思考的你总能从中发掘出不一样的问题 福州三中的跑道是一个n个格子围成的圆形,从0~n-1编号,有m个同学,第i个同学步长为a[i], ...

  5. 实现ARM——Linux的自动登录

    在使用Linux系统嵌入式开发时,往往需要设备绕过Linux的登录系统使其自动启动,比如我们常用的SSH客户端等.网上确实有很多方法,不知道是因为我们的ARM9板子是私人订制的缘故还是什么原因,试了很 ...

  6. [考试反思]1015csp-s模拟测试74:压迫

    其实同时也是第27,一大片并列的. 真的是越考越烂. T1是个弱化的贪心原题,15分钟拿下没什么可说的. T2打的记忆化搜索,hash_mod太小撞哈希了,50->30 T3,想不到正解,90分 ...

  7. SpringBoot Web篇笔记(一)

    摘要 文章是根据江南一点雨(松哥)的视频进行总结 江南一点雨博客 全局异常处理 通常情况下,我们都需要对自己定义的异常进行相应的处理.捕获指定的异常方式如下: @ControllerAdvice pu ...

  8. C表达式中的汇编指令

    C 表达式中的汇编指令 asm 为 gcc 中的关键字,asm 表达式为在 C代码中嵌套汇编指令,该表达式只是单纯的替换出汇编代码,并不对汇编代码的含义进行解析. asm 表达式有两种形式,第二种 a ...

  9. Comparable接口的实现和使用

    1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 .实现此接口的对象列表(和数组)可 ...

  10. Unity 横版2D移动跳跃问题——关于一段跳与二段跳

    1.初始条件: 1.角色只绑定一个碰撞体,移动时施加力或给予速度,用跳跃次数JumpTimes或者bool值OnGround判断是否在地面. 2.只用一个tilemap搭建2D场景,因此所有tilem ...