Mẫu số
Thuộc phần Kiến thức nền tảng trong hành trình Rust của Coddy. Bài học 73 trên 75.
Khi tạo các mẫu như hình kim tự tháp, chúng ta thường cần tạo chuỗi có các ký tự lặp lại. Trong Rust, có một vài cách để làm việc này, nhưng đây là một trong những cách đơn giản nhất:
let str = "a".repeat(10);str sẽ chứa "aaaaaaaaaa"
Phương thức repeat() yêu cầu đối số có kiểu usize, không phải kiểu số nguyên thông thường như i32.
usize là kiểu số nguyên không dấu có kích thước bằng con trỏ của Rust. Kích thước của kiểu này phụ thuộc vào kiến trúc của bạn: 32 bit trên hệ thống 32 bit, 64 bit trên hệ thống 64 bit.
let count: usize = 5;
let repeated = "x".repeat(count); // Cách này chạy đượcNếu bạn có một giá trị kiểu i32 hoặc một kiểu số nguyên khác, bạn cần chuyển đổi nó:
let num: i32 = 7;
let repeated = "y".repeat(num as usize);
// Chuyển đổi bằng 'as usize'Đoạn này sẽ không biên dịch:
let repeated = "z".repeat(num);
// Lỗi: cần kiểu usize, nhưng nhận được i32Thử thách
DễMỗi test case có một đầu vào, là một số nguyên lẻ.
Nhiệm vụ của bạn là in ra hình chóp n bằng *. Dưới đây là một số ví dụ:
Hình chóp 1
*Hình chóp 5
*
***
*****Hình chóp 7
*
***
*****
*******Đầu vào
- Số nguyên lẻ
ndo người dùng nhập - 1 <=
n< 1000
Gợi ý
- Hãy thử bắt đầu với những hình tam giác nhỏ
- Xem gợi ý nếu bạn gặp khó khăn ;)
nbiểu thị số lượng*ở hàng dưới cùng
Lưu ý: Trong Rust, các hàm xử lý "size" hoặc "length" của một thứ gì đó, chẳng hạn như .repeat(), cần một kiểu dữ liệu gọi là usize thay vì i32. Bạn có thể xem usize như một số nguyên thông thường không bao giờ âm.
Tự làm thử
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();
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
5Các toán tử phần 2
Các toán tử logic phần 1Các toán tử logic phần 2Ôn tập: logic đơn giảnCác toán tử logic phần 33Biến phần 2
Khai báo kiểu dữ liệuQuy ước đặt tênSuy luận kiểu dữ liệuÔn tập: Khởi tạo biếnÉp kiểu dữ liệu9Vòng lặp
Vòng lặp for qua chuỗiVòng lặp whileBreakContinueVòng lặp lồng nhauNhãn vòng lặpVòng lặp vô hạnÔn tập: Đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngMảng làm tham sốTruy cập phần tửChỉnh sửa mảngÔn tập: In mảng đẹp mắtTự luyện tập: Trình biên dịch Rust online