https://leetcode.com/problems/powx-n/
これは
impl Solution {
pub fn my_pow(x: f64, n: i32) -> f64 {
let mut x = x;
if let 0 = n {
return 1.0;
};
let i = x;
for _ in 1..(n).abs() {
x *= i;
}
if n > 0 {
return x;
} else {
return 1.0 / x;
}
}
}
impl Solution {
pub fn my_pow(x: f64, n: i32) -> f64 {
let result = Self::pow_recursive(x, n);
if n < 0 {
return 1.0 / result;
} else {
return result;
}
}
fn pow_recursive(x: f64, n: i32) -> f64 {
if n == 0 {
return 1.0;
};
let half = Self::pow_recursive(x, n / 2);
if n % 2 == 0 {
return half * half;
} else {
return half * half * x;
}
}
}