Sayı Örüntüsü
Coddy'nin Rust Journey'sinin Fundamentals bölümünün bir parçası — ders 73 / 75.
Piramitler gibi desenler oluştururken, genellikle yinelenen karakterlere sahip dizeler oluşturmamız gerekir. Rust'ta bunu başarmanın birkaç yolu vardır, ancak işte en basit yöntemlerden biri:
let str = "a".repeat(10);str, "aaaaaaaaaa" değerini tutacaktır
repeat() yöntemi, i32 gibi normal bir tam sayı türü değil, özellikle bir usize argümanı gerektirir.
usize, Rust'ın işaretsiz işaretçi boyutundaki tam sayı türüdür; boyutu mimarinize bağlıdır (32 bit sistemlerde 32 bit, 64 bit sistemlerde 64 bit).
let count: usize = 5;
let repeated = "x".repeat(count); // Bu çalışırEğer bir i32 veya başka bir tam sayı türüne sahipseniz, onu dönüştürmeniz gerekecektir:
let num: i32 = 7;
let repeated = "y".repeat(num as usize);
// 'as usize' ile dönüştürünBu derlenmeyecektir:
let repeated = "z".repeat(num);
// Hata: usize bekleniyordu, i32 bulunduGörev
KolayHer test durumu bir girdiye sahiptir - tek bir tam sayı.
Göreviniz * kullanarak n - piramidi yazdırmaktır, işte bazı örnekler:
1 - piramit
*5 - piramit
*
***
*****7 - piramit
*
***
*****
*******Girdi
- Kullanıcıdan alınan tek tam sayı
n - 1 <=
n< 1000
İpuçları
- Küçük üçgenlerden başlamayı deneyin
- Takılırsanız ipucuna göz atın ;)
n, en alt satırdaki*sayısını temsil eder
Not: Rust'ta, bir şeyin "boyutu" veya "uzunluğu" ile ilgilenen fonksiyonlar (örneğin .repeat()), i32 yerine usize adı verilen bir tür gerektirir; usize türünü asla negatif olmayan normal bir tam sayı olarak düşünebilirsiniz.
Kopya kağıdı
Rust'ta yinelenen karakterlere sahip dizeler oluşturmak için repeat() metodunu kullanın:
let str = "a".repeat(10);Bu, "aaaaaaaaaa" ("a" karakterinin 10 tekrarı) oluşturur.
repeat() metodu i32 veya diğer tam sayı türlerini değil, yalnızca usize (işaretsiz işaretçi boyutunda tam sayı) kabul eder.
let count: usize = 5;
let repeated = "x".repeat(count); // Çalışır
let num: i32 = 7;
let repeated = "y".repeat(num as usize); // Çalışır
let repeated = "z".repeat(num); // Hata: usize bekleniyordu, i32 bulunduKendin dene
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();
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Fundamentals bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüAritmetik KısayollarKarşılaştırma OperatörleriString Karşılaştırma7Temel Girdi-Çıktı
Konsola YazdırmaKullanıcı Girdisi OkumaÖzet - 120'ye KadarÖzet - Doğru veya Yanlış5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 311Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriBirden Fazla Dönüş DeğeriÖzet - Sigma FonksiyonuÖzet - Doğrulama Fonksiyonu14Diziler Üzerinde Gezinme
Range RehberiGelişmiş For DöngüsüDöngü İçinde Ödünç AlmaYaygın Dizi İşlemleri3Değişkenler Bölüm 2
Tür Bildirimiİsimlendirme KurallarıTür ÇıkarımıÖzet - Değişkenleri BaşlatmaTür Dönüştürme9Döngüler
Seriler Üzerinde ForWhile DöngüsüBreakContinueİç İçe DöngülerDöngü EtiketleriSonsuz DöngüÖzet - Dinamik Girdi