// overflow를 래핑(wrap around)하기 위해 `dev` 프로필을 커스터마이징하세요.// 올바른 문법을 찾아내기 위해 Cargo의 문서를 확인하세요.// https://doc.rust-lang.org/cargo/reference/profiles.html//// 나중에 설명하겠지만, 커스터마이징은 현재 exercise의 `Cargo.toml`이 아닌 // 리포지토리 루트의 `Cargo.toml`에 해야 합니다.pub fn factorial(n: u32) -> u32 { let mut result = 1; for i in 1..=n { result *= i; } result} test에는 다음과 같은 내용이 추가되었다.#[test] fn twentiet..
정답:// for문을 이용해 factorial을 재작성하세요.pub fn factorial(n: u32) -> u32 { let mut result = 1; let mut fac = n; if n == 0 || n == 1 { result = 1; } else { for i in 2..=fac { result *= i; } } result} while과 마찬가지로 가변 변수 result와 fac을 정의한 후, 2부터 fac까지 범위를 지정하고 i 변수로 추출하여 result에 차례로 곱해 팩토리얼을 계산했다. 만약 n이 5였다면 fac 역시 5가 된다. for문에서는 2..=fac 에 의해 2, 3, 4, 5가 차례..
// 팩토리얼 함수를 while 루프를 이용해 재작성하세요.pub fn factorial(n: u32) -> u32 { // The `todo!()` 매크로는 자리표시자(placeholer)로, // "나중에 돌아와서 처리할게요"로 컴파일러가 해석합니다. // 실행하면 panic이 발생합니다. todo!()} 정답:pub fn factorial(n: u32) -> u32 { let mut result = 1; let mut fac = n; if n == 0 || n == 1 { 1 } else { while fac > 1 { result = result * fac; fac = fac - 1; ..
정답: // `factorial`이라는 이름의 함수를 정의합니다. 음수가 아닌 정수 `n`을 받고,// `n`의 팩토리얼인 `n!`을 반환합니다.// `n!`은 n까지의 모든 정수의 곱으로 정의됩니다.// 예를 들어, `5!`은 `5 * 4 * 3 * 2 * 1`로, `120`입니다.// `0!`은 `1`로 정의됩니다.// `factorial(0)`과 `factorial(1)`은 `1`을, `factorial(2)`는 `2`를 반환하고,// .. 이런 식으로 계속되기를 기대합니다.//지금까지 배운 것만을 사용하세요! 아직 반복(loop)는 배우지 않았으므로, //재귀(recursion)을 사용해야 할 겁니다!fn factorial(n: i32) -> i32 { if n == 0 || n == 1 {..
fn speed(start: u32, end: u32, time_elapsed: u32) -> u32 { // TODO: `time_elapsed`가 0일 경우 사용자 지정 메시지와 함께 panic을 일으키세요. (end - start) / time_elapsed} 0으로 나누기(divide by zero) 오류는 흔히 발생하는 프로그래밍 오류로, 적절히 처리할 필요가 있다. 러스트에서는 오류를 처리하는 한 방법으로 panic을 제공한다.panic은 말 그대로 프로그램이 패닉에 빠진 상황을 의미한다. 즉, 복구 불가능한 오류(unrecoverable error)가 발생한 경우 panic이 발생한다. 개발자 역시 panic이 발생하도록 코드를 작성할 수 있는데, panic! 매크로를 사용한다. ..
/// `n`이 짝수이면 `12`를,/// `n`을 3으로 나눌 수 있으면 `13`을,/// 아니면 `17`을 반환하기fn magic_number(n: u32) -> u32 { todo!()} 러스트에서 표현식(expression)은 값을 반환하는 반면, 문(statement)는 값을 반환하지 않는다. 일반적으로 statement는 세미 콜론(;)으로 마친다. 함수 본문에서 명시적으로 return을 사용하지 않아도, 그것이 표현식이라면 함수의 반환 값으로 처리된다. 따라서 다음과 같은 작성이 가능하다. if문 역시 표현식이기 때문이다. 정답:fn magic_number(n: u32) -> u32 { if n % 2 == 0 { 12 } else if n % 3 == 0 { ..