我想找出2的權力n。我用這個遞歸函數。遞歸函數不工作java
我的代碼:
class TwoPowerN
{
static BigInteger twoPowern(BigInteger x, long y)
{
BigInteger temp = new BigInteger("1");
if(y == 0)
return new BigInteger("1");
temp.equals(twoPowern(x, y/2));
if (y%2 == 0)
return temp.multiply(temp);
else
return x.multiply(temp.multiply(temp));
}
public static void main(String args[]) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
int t = Integer.parseInt(br.readLine());
while(t>0)
{
long r = Long.parseLong(br.readLine());
BigInteger a = new BigInteger("2");
BigInteger ans=twoPowern(a,r);
pw.println(ans);
t--;
}
pw.close();
}
}
但我沒有得到需要的結果。
例如1 2 3 4 5
我得到2 1 2 1 2
。 'C'中的一個類似的程序(使用類似的功能,但使用int)很好。
任何人都可以解釋什麼是錯誤?
請修復您的縮進。 – bblincoe
'temp.equals(twoPowern(x,y/2))':爲什麼你在這裏調用'equals()'而沒有對結果做任何事情? –