double a = INF; は、const INF: f64 = 1e18; で表現する
const N: i32 = 4; const K: i32 = 11; const L: [f64; 4] = [8.02, 7.43, 4.57, 5.39]; const INF: f64 = 1e18; fn C(x: f64) -> bool { let mut num = 0.0; for i in 0..N { num += L[i as usize] / x; } return num >= K.into(); } fn main() { let mut lb: f64 = 0.0; let mut ub: f64 = INF; for i in 0..100 { let mid: f64 = (lb + ub) / 2.0; if (C(mid)) { lb = mid; } else { ub = mid; } } println!("{}", ub * 100.0 / 100.0); }
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.41s
Running `target/debug/basic`
2.3100000000006227