Menu
CoddyTech

Числовой узор

Часть раздела Основы путешествия по Rust на Coddy. Урок 73 из 75.

При создании узоров, например пирамид, нам часто нужно создавать строки с повторяющимися символами. В Rust есть несколько способов добиться этого, но вот один из самых простых:

let str = "a".repeat(10);

В str будет храниться "aaaaaaaaaa"

Методу repeat() требуется аргумент типа usize, а не обычный целочисленный тип, например i32.

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
challenge icon

Задание

Легко

В каждом тестовом случае на вход подаётся одно нечётное целое число.
Твоя задача — вывести пирамиду высотой n с помощью *. Вот несколько примеров:

Пирамида высотой 1

*

Пирамида высотой 5

*
***
*****

Пирамида высотой 7

*
***
*****
*******

Ввод

  • нечётное целое число n от пользователя
  • 1 <= n < 1000

Советы

  • Попробуй начать с маленьких треугольников
  • Если застрял, посмотри подсказку ;)

n обозначает количество символов  * в нижнем ряду

Примечание: В Rust для функций, работающих с «размером» или «длиной» чего-либо (например, .repeat()), требуется тип usize, а не i32; считай usize обычным целым числом, которое не бывает отрицательным.

Попробуйте сами

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();

    
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Rust