mirror of
https://github.com/krahets/hello-algo.git
synced 2026-11-01 18:55:23 +08:00
* feat(ko): add the complete Korean online edition * Use UTF-8 for Python CI output on Windows * Remove print-book promotion from the Korean site * fix(ko): preserve emphasis before Korean particles
62 lines
1.1 KiB
Rust
62 lines
1.1 KiB
Rust
/*
|
|
* File: complexity_exercises.rs
|
|
* Created Time: 2026-08-18
|
|
* Author: Hello Algo Team
|
|
*/
|
|
|
|
/* 반복으로 합 구하기 */
|
|
fn sum_iter(n: i32) -> i32 {
|
|
let mut res = 0;
|
|
for i in 1..=n {
|
|
res += i;
|
|
}
|
|
res
|
|
}
|
|
|
|
/* 재귀로 합 구하기 */
|
|
fn sum_recur(n: i32) -> i32 {
|
|
if n == 1 {
|
|
return 1;
|
|
}
|
|
n + sum_recur(n - 1)
|
|
}
|
|
|
|
/* 선형 차수 반복문 */
|
|
fn linear_loop(n: i32) -> i32 {
|
|
let mut res = 0;
|
|
for i in 0..n {
|
|
res += i;
|
|
}
|
|
res
|
|
}
|
|
|
|
/* 제곱 차수 반복문 */
|
|
fn quadratic_loop(n: i32) -> i32 {
|
|
let mut res = 0;
|
|
for i in 0..n {
|
|
for j in i..n {
|
|
res += j;
|
|
}
|
|
}
|
|
res
|
|
}
|
|
|
|
/* 로그 차수 반복문 */
|
|
fn logarithmic_loop(mut n: i32) -> i32 {
|
|
while n > 1 {
|
|
n /= 2;
|
|
}
|
|
n
|
|
}
|
|
|
|
fn main() {
|
|
assert_eq!(sum_iter(1), 1);
|
|
assert_eq!(sum_recur(1), 1);
|
|
assert_eq!(sum_iter(4), 10);
|
|
assert_eq!(sum_recur(4), 10);
|
|
assert_eq!(linear_loop(4), 6);
|
|
assert_eq!(quadratic_loop(4), 20);
|
|
assert_eq!(logarithmic_loop(4), 1);
|
|
assert_eq!(logarithmic_loop(5), 1);
|
|
}
|