n個骰子 劍指offer

2021-09-19 16:56:48 字數 558 閱讀 3980

暴力求解,n個骰子和為s就等於n-1個骰子和分別為s-1~s-6時次數的總和。據此寫出**如下:

int baoli(int n, int s)

int count = 0;

count = baoli(n - 1, s - 1) + baoli(n - 1, s - 2) + baoli(n - 1, s - 3) +

baoli(n - 1, s - 4) + baoli(n - 1, s - 5) + baoli(n - 1, s - 6);

return count;

}

動態規劃,空間複雜度為o(ns),時間複雜度為o(ns);

int times(int n, int s)

return f[n][s];

}

動態規劃,優化空間複雜度,只使用兩個長度為s+1的陣列,空間複雜度為o(s);

int times(int n, int s)

return f[n][s];

}

劍指offer 43 n個骰子的點數

n個骰子的點數 把n個骰子扔在地上,點數之和為s,輸入個數n,列印出所有可能的值出現的概率 解法1 兩個矩陣迭代相加,乙個點數等於之前6個點數相加 public class main public static void printpro int n int matrix new int 2 6 n...

劍指offer43 n個骰子的點數

類似青蛙跳台階的問題 第n個骰子點數為1的話,f n,s f n 1,s 1 當第n個骰子點數為2的話,f n,s f n 1,s 2 依次類推。在n 1個骰子的基礎上,再增加乙個骰子出現點數和為s的結果只有這6種情況!f n,s f n 1,s 1 這個等式只是在 第n個點數為1的時候,所有考慮的...

劍指 Offer 60 n個骰子的點數

把n個骰子扔在地上,所有骰子朝上一面的點數之和為s。輸入n,列印出s的所有可能的值出現的概率。你需要用乙個浮點數陣列返回答案,其中第 i 個元素代表這 n 個骰子所能擲出的點數集合中第 i 小的那個的概率。示例 1 輸入 1 輸出 0.16667,0.16667,0.16667,0.16667,0....