一道筆試題,拋骰子8次,和為多少最大,對於筆試題可以這樣考慮,兩個骰子和為 7的概率最大,8次的話最大為28.
下面程式設計給出說明,result[i][j] 代表拋i次時,和為j 的次數。對於第i+1 次可使用前面的結果來計算,如計算 result[i+1][48] 可以 把result[i][48-1], result[i][48-2],result[i][48-3],result[i][48-4],result[i][48-5],result[i][48-6] 的值加起來,這樣的話就可以自底向上的推出任意次拋骰子的和的結果。
演算法如下:
public static void rolldice(int cnt)}}
} for(int i=cnt;i<=cnt*6;i++)
}public static void main(string args)
//result
sum 8 cnt: 1
sum 9 cnt: 8
sum 10 cnt: 36
sum 11 cnt: 120
sum 12 cnt: 330
sum 13 cnt: 792
sum 14 cnt: 1708
sum 15 cnt: 3368
sum 16 cnt: 6147
sum 17 cnt: 10480
sum 18 cnt: 16808
sum 19 cnt: 25488
sum 20 cnt: 36688
sum 21 cnt: 50288
sum 22 cnt: 65808
sum 23 cnt: 82384
sum 24 cnt: 98813
sum 25 cnt: 113688
sum 26 cnt: 125588
sum 27 cnt: 133288
sum 28 cnt: 135954
sum 29 cnt: 133288
sum 30 cnt: 125588
sum 31 cnt: 113688
sum 32 cnt: 98813
sum 33 cnt: 82384
sum 34 cnt: 65808
sum 35 cnt: 50288
sum 36 cnt: 36688
sum 37 cnt: 25488
sum 38 cnt: 16808
sum 39 cnt: 10480
sum 40 cnt: 6147
sum 41 cnt: 3368
sum 42 cnt: 1708
sum 43 cnt: 792
sum 44 cnt: 330
sum 45 cnt: 120
sum 46 cnt: 36
sum 47 cnt: 8
sum 48 cnt: 1
面試題 和為s的連續正數序列
輸入乙個正數s,列印出所有和為s的連續正數序列 至少含有兩個數 例如,輸入15,由於1 2 3 4 5 4 5 6 7 8 15,所以列印出3個連續序列1 5 4 6和7 8。思路 依舊雙指標套路 void findcontinuoussequence int sum if sum 3 return...
面試題57 和為s的是數字
和為s的兩個數字。輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和為s,則輸出任意一對即可。例如,輸入陣列和數字15。由於4 11 15,因此輸出4和11。陣列是有序的,這個條件要合理利用,用兩個索引分別指向陣列的頭和尾,計算兩個索引對應值的和,如果小...
網易面試題 和為n的連續正數序列
用兩個數small和big分別表示序列的最小值和最大值。首先把small初始化為1,big初始化為2,如果從small到big的序列的和大於n的話,向右移動small,相當於從序列中去掉較小的數字。如果從small到big的序列和小於n的話,向右移動big,相當於向序列中新增big的下乙個數字,一直...