ํ•ด๋‹ต

/// ์ง€์ •๋œ ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
fn magnitude(vector: &[f64; 3]) -> f64 {
    let mut mag_squared = 0.0;
    for coord in vector {
        mag_squared += coord * coord;
    }
    mag_squared.sqrt()
}

/// ๋ฐฉํ–ฅ ๋ณ€๊ฒฝ ์—†์ด ๋ฒกํ„ฐ ํฌ๊ธฐ๋ฅผ 1.0์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
fn normalize(vector: &mut [f64; 3]) {
    let mag = magnitude(vector);
    for item in vector {
        *item /= mag;
    }
}

fn main() {
    println!("๋‹จ์œ„ ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ: {}", magnitude(&[0.0, 1.0, 0.0]));

    let mut v = [1.0, 2.0, 9.0];
    println!("{v:?} ํฌ๊ธฐ: {}", magnitude(&v));
    normalize(&mut v);
    println!("์ •๊ทœํ™” ํ›„ {v:?}์˜ ํฌ๊ธฐ: {}", magnitude(&v));
}