我想找出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()'而没有对结果做任何事情? –