20240802 Finished
This commit is contained in:
		@@ -191,4 +191,5 @@ mod p137_single_number_ii;
 | 
			
		||||
mod p201_bitwise_and_of_numbers_range;
 | 
			
		||||
mod p66_plus_one;
 | 
			
		||||
mod p172_factorial_trailing_zeroes;
 | 
			
		||||
mod p69_sqrtx;
 | 
			
		||||
mod p69_sqrtx;
 | 
			
		||||
mod p50_powx_n;
 | 
			
		||||
							
								
								
									
										41
									
								
								src/problem/p50_powx_n.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								src/problem/p50_powx_n.rs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
			
		||||
/**
 | 
			
		||||
 * [50] Pow(x, n)
 | 
			
		||||
 */
 | 
			
		||||
pub struct Solution {}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// submission codes start here
 | 
			
		||||
 | 
			
		||||
impl Solution {
 | 
			
		||||
    pub fn my_pow(x: f64, n: i32) -> f64 {
 | 
			
		||||
        if n < 0 {
 | 
			
		||||
            1f64 / Self::quick_pow(x, -n)
 | 
			
		||||
        } else {
 | 
			
		||||
            Self::quick_pow(x, n)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    fn quick_pow(x: f64, n: i32) -> f64 {
 | 
			
		||||
        if n == 0 {
 | 
			
		||||
            1f64
 | 
			
		||||
        } else { 
 | 
			
		||||
            let y = Self::quick_pow(x, n / 2);
 | 
			
		||||
            if n % 2 == 0 {
 | 
			
		||||
                y * y
 | 
			
		||||
            } else { 
 | 
			
		||||
                y * y * x
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// submission codes end
 | 
			
		||||
 | 
			
		||||
#[cfg(test)]
 | 
			
		||||
mod tests {
 | 
			
		||||
    use super::*;
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn test_50() {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user