Menu
Coddy logo textTech

Padrão Numérico

Parte da seção Fundamentals do Journey de Rust da Coddy — lição 73 de 75.

Ao criar padrões como pirâmides, muitas vezes precisamos criar strings com caracteres repetidos. Em Rust, existem várias maneiras de conseguir isso, mas aqui está um dos métodos mais diretos:

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

str conterá "aaaaaaaaaa"

O método repeat() requer especificamente um argumento usize, não um tipo de número inteiro comum como i32.

usize é o tipo inteiro sem sinal do tamanho de um ponteiro do Rust - seu tamanho depende da sua arquitetura (32 bits em sistemas de 32 bits, 64 bits em sistemas de 64 bits).

let count: usize = 5;
let repeated = "x".repeat(count);  // Isso funciona

Se você tiver um i32 ou outro tipo inteiro, você precisará convertê-lo:

let num: i32 = 7;
let repeated = "y".repeat(num as usize);
// Converta com 'as usize'

Isso não compilará:

let repeated = "z".repeat(num);
// Erro: esperado usize, encontrado i32
challenge icon

Desafio

Fácil

Cada caso de teste possui uma entrada - um número inteiro ímpar.
Sua tarefa é imprimir uma n - pyramid usando *, aqui estão alguns exemplos:

1 - pyramid

*

5 - pyramid

*
***
*****

7 - pyramid

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

Entrada

  • inteiro ímpar n do usuário
  • 1 <= n < 1000

Dicas

  • Tente começar pelos triângulos pequenos
  • Verifique a dica se você estiver travado ;)

n representa o número de  * na linha inferior

Nota: Em Rust, funções que lidam com o "tamanho" ou "comprimento" de algo (como .repeat()) exigem um tipo chamado usize em vez de i32; você pode tratar usize como um número inteiro normal que nunca é negativo.

Experimente você mesmo

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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentals