我砍死了一個遞歸函數中的Java在我的統計類家庭作業的問題,那看起來是這樣的:遞歸在Matlab和Java
public static int d (int k, int n) {
if (n == 1) return 1;
else if (n > k) return 0;
else return n*d(k-1, n) + n*d(k-1,n-1);
}
然後我插入(20,8)進入該功能,並獲得998,925,952。我的教授,但是,他說,這個答案是錯誤的,並且一遍又一遍地重新考慮我的代碼後,我決定嘗試在Matlab同樣的事情:
function t = d(k,n)
t = 0;
if n == 1
t = 1;
elseif n > k
t = 0;
else
t = n*d(k-1, n) + n*d(k-1, n-1);
end
這個功能,很顯然,給了我正確的答案與以上輸入,6.1169 * 10^17。
這已經整天被竊聽我,我絕對不知道爲什麼在兩種不同的語言兩種看似相同的節目都會給我完全不同的結果。任何人都可以解釋這個嗎?
打我給它15秒! –
Do'h ..同上: –
謝謝,我不能相信我完全忘了! > _ < –