rust_test/src/main.rs

30 lines
897 B
Rust
Raw Normal View History

struct Solution;
impl Solution {
2025-08-17 22:56:39 +08:00
// return type: all situation, not crash situation
pub fn new21_game(n: i32, k: i32, max_pts: i32) -> f64 {
let mut mem = vec![0f64; (k + max_pts + 1) as usize];
for i in k .. k + max_pts + 1 {
mem[i as usize] = if i <= n { 1f64 } else { 0f64 };
}
let mut temp_ans = 0f64;
if(k - 1 >= 0)
{
let i = k - 1;
for j in 1..max_pts + 1 {
temp_ans += mem[(i + j) as usize];
2025-08-01 10:39:53 +08:00
}
2025-08-17 22:56:39 +08:00
mem[i as usize] = temp_ans as f64 / max_pts as f64;
}
for i in (0..k - 1).rev() {
temp_ans += mem[(i + 1) as usize] - mem[(i + max_pts + 1) as usize];
mem[i as usize] = temp_ans as f64 / max_pts as f64;
}
2025-08-17 22:56:39 +08:00
mem[0]
}
}
fn main() {
2025-08-17 22:56:39 +08:00
let sl = Solution::new21_game(21, 17, 10);
println!("{:?}", sl);
}