0
我正在嘗試查找總和給定數字n
的平方整數的最小數目。與n相加的平方整數的最小數目 - 如何迭代執行?
我用遞歸函數解決了它,但我想迭代地完成它。
如何使用一些循環,而不是遞歸方法?
public static ArrayList<Integer> minLen(int n)
{
// base case of recursion
if (n == 0)
return new ArrayList<Integer>();
ArrayList<Integer> best = null;
int bestInt = -1;
for (int i = 1; i*i <= n; ++i)
{
// Check what happens if we use i^2 as part of our representation
ArrayList<Integer> guess = minLen(n - i*i);
System.out.println("i:"+i);
System.out.println("Guess"+guess);
// If we haven't selected a 'best' yet (best == null)
// or if our new guess is better than the current choice (guess.size() < best.size())
// update our choice of best
if (best == null || guess.size() < best.size())
{
best = guess;
System.out.println("best"+best);
bestInt = i;
System.out.println("bestInt"+bestInt);
}
}
best.add(bestInt);
System.out.println("bestInt"+bestInt);
System.out.println("best"+best);
return best;
}
感謝您的幫助。 – Ved 2015-04-01 09:47:39
我必須將列表更改爲arraylist tats。 (類型不匹配)列表 numbers = new ArrayList <>(); ArrayList numbers = new ArrayList <>(); –
Ved
2015-04-01 09:48:42
@Ved它適用於我'List'。也許你的方法的返回類型是'ArrayList',然後 - 你應該改爲'List'而不是。 –
amit
2015-04-01 09:54:25