숫자 패턴
Coddy Rust 여정의 Fundamentals 섹션에 포함된 레슨 — 75개 중 73번째.
피라미드와 같은 패턴을 만들 때, 종종 반복되는 문자로 구성된 문자열을 만들어야 할 때가 있습니다. Rust에는 이를 수행하는 여러 가지 방법이 있지만, 가장 간단한 방법 중 하나는 다음과 같습니다:
let str = "a".repeat(10);str은 "aaaaaaaaaa"를 갖게 됩니다.
repeat() 메서드는 i32와 같은 일반 정수 타입이 아닌 usize 인수를 명시적으로 요구합니다.
usize는 Rust의 부호 없는 포인터 크기 정수 타입입니다. 그 크기는 아키텍처에 따라 달라집니다(32비트 시스템에서는 32비트, 64비트 시스템에서는 64비트).
let count: usize = 5;
let repeated = "x".repeat(count); // 정상적으로 동작합니다i32 또는 다른 정수 타입의 값이 있다면, 이를 변환해야 합니다:
let num: i32 = 7;
let repeated = "y".repeat(num as usize);
// 'as usize'를 사용하여 변환합니다이 코드는 컴파일되지 않습니다:
let repeated = "z".repeat(num);
// 오류: usize가 예상되었으나 i32가 발견됨챌린지
쉬움각 테스트 케이스는 하나의 입력 - 홀수인 정수를 가집니다.
당신의 작업은 *를 사용하여 n - 피라미드를 출력하는 것입니다. 다음은 몇 가지 예시입니다:
1 - 피라미드
*5 - 피라미드
*
***
*****7 - 피라미드
*
***
*****
*******입력
- 사용자로부터 입력받는 홀수 정수
n - 1 <=
n< 1000
팁
- 작은 삼각형부터 시작해 보세요
- 막혔을 때는 힌트를 확인해 보세요 ;)
n은 맨 아래 줄에 있는*의 개수를 나타냅니다
참고: Rust에서 무언가의 "크기"나 "길이"를 다루는 함수(예: .repeat())는 i32 대신 usize라는 타입을 필요로 합니다. usize는 절대 음수가 되지 않는 일반적인 정수로 취급할 수 있습니다.
치트 시트
Rust에서 반복되는 문자가 포함된 문자열을 생성하려면 repeat() 메서드를 사용하세요:
let str = "a".repeat(10);이렇게 하면 "aaaaaaaaaa" ("a"가 10번 반복됨)가 생성됩니다.
repeat() 메서드는 i32나 다른 정수 타입이 아닌 usize(부호 없는 포인터 크기 정수)만 인자로 받습니다.
let count: usize = 5;
let repeated = "x".repeat(count); // 정상 작동
let num: i32 = 7;
let repeated = "y".repeat(num as usize); // 정상 작동
let repeated = "z".repeat(num); // 오류: usize가 필요하지만 i32가 발견됨직접 해보기
use std::io;
fn main() {
let mut input_n = String::new();
io::stdin().read_line(&mut input_n).unwrap();
let n: usize = input_n.trim().parse().unwrap();
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.