给你三个数X(1<=X<=10^100)、Y(1<=Y<=10^8)、Z(1<=Z<=10^4),你能计算出X^Y%Z的值吗? Description Input Output |
|
x^y = x^(y/2) y为偶数
x^y = x * x^(y/2) y为奇数 |
|
40分 |
红色部分,其是是想求value的y次方除以z取余。
一步一步来思考: 第一步就是 result = result * value % z, 循环y次,就得出结果 但是这样做是不是还能再优化呢?答案是肯定的。我们先用递归的思路思考一下: 其实红色的部分就是要把上述的递归部分转化成循环的方法来实现。 ———————— |
说得有道理. |
|
把%z去掉就是快速冪的算法,
|
|
2楼的朋友,,谢了哈,懂了一些,,,红色那里是对的 |