1
我繼續爲遞歸的概念掙扎。我有一個函數,它需要一個u64
並返回該整數的因子Vec<u64>
。我想在Vec
的每個項目上遞歸地調用這個函數,返回一個扁平化的Vec
,直到函數爲每個項目返回Vec<self>
,即每個項目爲素數。遞歸函數返回一個Vec
fn prime_factors(x: u64) -> Vec<u64> {
let factors = factoring_method(x);
factors.iter().flat_map(|&i| factoring_method(i)).collect()
}
這僅返回的最後一次迭代的因素Vec
,也沒有條件的,允許其繼續下去,直到項目都是素數。
factoring_method
是我很滿意的廣場的一致性。我確定有很多優化的空間,但我希望在重構之前完成一個工作版本。我認爲這個遞歸應該在congruence_of_squares
之內 - 自己調用Vec
的每個成員,但是我不確定如何設置條件以防止它無限地執行。
其實,這是很難不說'factoring_method'回答。請提供[MCVE]。 –
'factoring_method'和'prime_factors'是否應該是相同的函數? – sellibitze
@sellibitze - 沒有保理的方法是分開的,你遇到了Shepmaster指出的同樣的概念問題。我很抱歉沒有使用E_net4請求的代碼更新問題。生病了幾天。我會盡量在今天晚上更新以澄清。 –