计算a n %b,其中a
,b
和n
都是32位正整数。
示例
对于2 31 %3 = 2
对于100 1000 %1000 = 0
时间复杂度为O(logn)
我正在使用递归方法来解决此问题,但我不知道为什么输出为-54791,因为可以通过某些测试。同样对于递归返回值,我也不知道应该放在哪里。
当我提交时:
Wrong Answer
47% test cases passedTotal runtime 2375 ms
Input
a = 11
b = 123898
n = 12345
Output
-54791
Expected
78433
public class Solution {
/**
* @param a: A 32bit integer
* @param b: A 32bit integer
* @param n: A 32bit integer
* @return: An integer
*/
int res = 1;
public int fastPower(int a, int b, int n) {
// write your code here
if(n == 0){
if(b == 1){
return 0;
}
return res % b;
}
if(n % 2 == 0){
int temp = fastPower(a, b, n/2);
res = temp * temp;
}else{
int temp = fastPower(a, b, n/2);
res = temp * temp * a;
}
return res % b;
}
//return fastPower(a,b,n) % b;
}
答案 0 :(得分:0)
战俘(n)模组(b):
flush()
用法:
myFile.println("Hello World");
myFile.flush();
myFile.close();