Menu
Coddy logo textTech

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ışır

Eğ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ün

Bu derlenmeyecektir:

let repeated = "z".repeat(num);
// Hata: usize bekleniyordu, i32 bulundu
challenge icon

Görev

Kolay

Her 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 bulundu

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

    
}
quiz iconKendini test et

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