Числовой узор
Часть раздела Основы путешествия по 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Задание
ЛегкоВ каждом тестовом случае на вход подаётся одно нечётное целое число.
Твоя задача — вывести пирамиду высотой 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();
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияАрифметические сокращенияОператоры сравненияСравнение строк7Основы ввода-вывода
Вывод в консольЧтение ввода пользователяПовторение — До 120Повторение — True или False5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 38Приложение-калькулятор
Приветственное сообщениеПолучение чисел3Переменные. Часть 2
Объявление типаСоглашения об именованииВывод типовПовторение: инициализация переменныхПриведение типов9Циклы
Цикл For по последовательностиЦикл WhileОператор BreakОператор ContinueВложенные циклыМетки цикловБесконечный циклПовторение — Динамический вводПотренируйтесь самостоятельно: Онлайн-компилятор Rust