AOJ 760.尾数相等的数

尾数相等的数

Time Limit: 1000 ms   Case Time Limit: 1000 ms   Memory Limit: 64 MB
Total Submission: 45   Submission Accepted: 8

Description

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

Input

每一行包含一组测试数据,每组测试数据包含一个位长小于10的正整数K.

Output

对每组测试数据输出一行。每行包含2个正整数M和N,两数之间用一个空格分隔。

Sample Input

Original Transformed
20
125

Sample Output

Original Transformed
3 4
2 4

模拟操作即可,关键在于由于数据较大,而我们需要的只有后三位,因此不断%1000即可

注意1次方就符合条件的情况,和小于1000的情况

AC代码:GitHub

 1 /*
 2 By:OhYee
 3 Github:OhYee
 4 HomePage:http://www.oyohyee.com
 5 Email:[email protected]
 6 Blog:http://www.cnblogs.com/ohyee/
 7
 8 かしこいかわいい?
 9 エリーチカ!
10 要写出来Хорошо的代码哦~
11 */
12
13 #include <cstdio>
14 #include <algorithm>
15 #include <cstring>
16 #include <cmath>
17 #include <string>
18 #include <iostream>
19 #include <vector>
20 #include <list>
21 #include <queue>
22 #include <stack>
23 #include <map>
24 using namespace std;
25
26 //DEBUG MODE
27 #define debug 0
28
29 //循环
30 #define REP(n) for(int o=0;o<n;o++)
31
32 //初始化
33 #define mst(a) memset(a,-1,sizeof(a))
34
35 const int maxn = 1005;
36 int visited[maxn];
37
38 bool Do() {
39     long long n;
40     if(scanf("%lld",&n) == EOF)
41         return false;
42
43     mst(visited);
44
45     int N,M,e = 1;
46     long long k = n;
47     while(k < 1000) {
48         k *= n;
49         e++;
50     }
51     k %= 1000;
52     for(int i = 0;;i++) {
53         if(visited[k] != -1) {
54             N = e + i;
55             M = visited[k];
56             break;
57         } else {
58             visited[k] = e + i;
59         }
60         k *= n;
61         k %= 1000;
62     }
63
64     printf("%d %d\n",M,N);
65
66     return true;
67 }
68
69 int main() {
70     while(Do());
71     return 0;
72 }
时间: 2025-01-18 07:53:33

AOJ 760.尾数相等的数的相关文章

java笔试之自守数

链接:https://www.nowcoder.com/profile/108908/codeBookDetail?submissionId=2256243来源:牛客网 自守数是指一个数的平方的尾数等于该数自身的自然数.例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376.请求出n以内的自守数的个数 接口说明 /*功能: 求出n以内的自守数的个数 输入参数:int n 返回值:n以内自守数的数量.*/ public static int CalcAutomorp

华为机试-自守数

题目描述自守数是指一个数的平方的尾数等于该数自身的自然数.例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376.请求出n以内的自守数的个数 接口说明 /*功能: 求出n以内的自守数的个数 输入参数:int n返回值:n以内自守数的数量.*/ public static int CalcAutomorphicNumbers( int n){/*在这里实现功能*/return 0;} 输入描述:int型整数输出描述:n以内自守数的数量.示例1输入 2000输出 8

【华为OJ】【060-自守数】

[华为OJ][算法总篇章] [华为OJ][060-自守数] [工程下载] 题目描述 自守数是指一个数的平方的尾数等于该数自身的自然数.例如:252 = 625,762 = 5776,93762 = 87909376. 请求出n以内的自守数的个数 接口说明 /** * 功能: 求出n以内的自守数的个数 * * 输入参数:int n * 返回值:n以内自守数的数量. */ public static int calcAutomorphicNumbers(int n) { /*在这里实现功能*/ re

华为初级——自守数

描述:自守数是指一个数的平方的尾数等于该数自身的自然数.例如:25^2=625,76^2=5776,9376^2=87909376.请求出n以内的自守数的个数 接口说明 原型:unsigned int CalAutomorphicNumbers(unsigned int n); 输入参数:unsigned int n 返回值:n以内自守数的数量 知识点: 题目来源:内部整理 练习阶段:初级 运行时间限制:10sec 内存限制:128MByte 输入:输入一个整数 输出:输出一个整数 样例输入:2

[转]100个经典C语言程序(益智类问题)

目录: 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事犯 13.该存多少钱 14.怎样存钱利最大 15.捕鱼和分鱼 16.出售金鱼 1.7 分数四则运算 17.平分七筐鱼 18.有限5位数 19. 8 除不尽的数 21.4位反序数 22.求车速 23.阿姆斯特朗数 24.完全数 26.亲密数 27.自守数 28.回文数 29.求具有abcd=(ab+c

C语言数据类型总结

类比是学习一门新语言的好方法,以下我们类比java语言来看一下C语言的的数据类型. C语言提供了丰富的数据类型,以下这张图能够非常好的表现C语言全部的数据类型: 从中能够看到C语言提供java了语言没有的结构体.共用体和指针类型,同一时候C语言缺少java中的布尔类型即boolean,C语言和java的差别还体如今每种类型所占的位数,具体见下图: 以下分别介绍一下各种类型使用时的注意事项 1.整型 整型常量在C语言中有三种进位制.各自是十进制.八进制和十六进制.在使用时,十进制的数字以非0数字开

数字、基数及表示

数字.基数及表示 整数 整数是这些熟悉的数字 …, -1, 0, +1, +2, ….整数值也被称作是‘完整的’,并且分为正数(1到无穷大),负数(-1到负无穷大),零(0),非负数(零或正数)和少有的非正数(零或负数).正数和非负数间的差别通常非常重要,例如C语言典型地用非负数作为数组下标,明确地包括零. 基数 我们书写整数(和其它数字)时通常使用‘基数10’或‘十进制’算术.这是一种位置符号,每一个‘位置’的值比下一个大十倍.最后一个数字是一的个数,倒数第二个是10的个数,依此类推:因此数字

initializer element is not constant 问题

在Ubuntu下,比葫芦画瓢,写了一个程序,居然报错!!!! 1 #include <stdio.h> 2 3 float i = 3; 4 int j = *(int *)(&i) ; 5 6 int main (int argc , char *argv[]) 7 { 8 printf( "i = %f \n" , i ) ; 9 printf( "j = %#x \n" , j); 10 return 0; 11 } 对于高手,一眼就能看出

&lt;limits.h&gt;和&lt;float.h&gt;

头文件<limits.h>中定义了用于表示整类型大小的常量.以下所列的值是可接受的最小值,实际系统中可能有更大的值. CHAR_BIT 8 char类型的位数 CHAR_MAX UCHAR_MAX或SCHAR_MAX char类型的最大值 CHAR_MIN 0或SCHAR_MIN char类型的最小值 INT_MAX 32767 int类型的最大值 INT_MIN -32767 int类型的最小值 LONG_MAX 2147483647 long的最大值 LONG_MIN -214748364