现在的位置: 首页 > 综合 > 正文

CUGB题库1004

2014年02月08日 ⁄ 综合 ⁄ 共 937字 ⁄ 字号 评论关闭

原题如下:

Description

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

 

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

 

 

循环

循环长度

 

2

2486

4

 

3

3971

4

 

4

46

2

 

5

5

1

 

6

6

1

 

7

7931

4

 

8

8426

4

 

9

91

2

 

 

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

 

注意:

 

1. 如果n的某个正整数次幂的位数不足k,那么不足的高位看做是0

 

2. 如果循环长度是L,那么说明对于任意的正整数ana次幂和a + L次幂的最后k位都相同。

 

Input

输入只有一行,包含两个整数n1 <= n < 10^100)和k1 <= k <= 100),nk之间用一个空格隔开,表示要求n的正整数次幂的最后k位的循环长度。

 

Output

输出包括一行,这一行只包含一个整数,表示循环长度。如果循环不存在,输出-1

 

Sample Input

32 2

 

Sample Output

4

 

Hint

对于30%的数据,k <= 4

对于全部的数据,k <= 100

本题需要高精度运算,没有掌握的同学慎做……

 

 

题目算是做出来了,Samlpe通过了,自己凑的几个数据也都正确了,说明这题目我算是理解了。

但是一直WA,估计应该就是高精度运算的问题吧,这个,好吧,我真的不会。

就连math.h函数库我也是现场百度的我会乱说吗?

大一下学期才教C语言,在宿舍又是充斥着我杀我闪的喊声,我该肿么办。

 

下面附上代码网址,GitHub真高端,赞一个。

https://github.com/Xuanwo/CUGB/blob/master/1004.c

如果除了高精度运算之外还有别的问题,请大神一定要告诉我哈。

丑陋的代码风格什么的,就忍一忍吧,纠正过来需要时间。

2013-10-4   2:54:26

抱歉!评论已关闭.