我正在編寫斐波那契程序。public class ImperativeFibonacci implements Fibonacci { public BigInteger fibonacci(int n) { BigInteger nextFibonacci = new BigInteger("1"), currentFibonacci = new BigInteger("1"); for (int i = 2; i <= n; i++) { nextFibonacci = currentFibonacci.add(nextFibonacci); currentFibonacci = nextFibonacci.subtract(currentFibonacci); } return nextFibonacci; }}我想用以下內容替換第 3 行:BigInteger nextFibonacci = new BigInteger.ONE, currentFibonacci = new BigInteger.ONE;但它不起作用。怎么了?
3 回答

慕桂英4014372
TA貢獻1871條經驗 獲得超13個贊
因為BigInteger.ONE
是一個常量并且已經有一個實例。刪除new
。喜歡
BigInteger nextFibonacci = BigInteger.ONE, currentFibonacci = BigInteger.ONE;

回首憶惘然
TA貢獻1847條經驗 獲得超11個贊
因為ONE是類的一個final static字段,BigNumber和new關鍵字配對沒有任何意義,你不想分配 a BigNumber.ONE,你想直接使用它,只需刪除關鍵字:
BigInteger nextFibonacci = BigInteger.ONE;
BigInteger currentFibonacci = new BigInteger.ONE;
您要做的是嘗試使用new變量聲明,例如:
BigNumber NUMBER = new BigNumber("1");
BigNumber other = new NUMBER;
// ^^^ doesn't make any sense

叮當貓咪
TA貢獻1776條經驗 獲得超12個贊
BigInteger nextFibonacci = new BigInteger.ONE
將其更改為:
BigInteger nextFibonacci = BigInteger.ONE
添加回答
舉報
0/150
提交
取消