Menu
CoddyTech

Patrones numéricos

Parte de la sección Fundamentos del Journey de Rust de Coddy. Lección 73 de 75.

Al crear patrones como pirámides, a menudo necesitamos crear cadenas con caracteres repetidos. En Rust, hay varias formas de lograrlo, pero aquí tienes uno de los métodos más sencillos:

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

str contendrá "aaaaaaaaaa"

El método repeat() requiere específicamente un argumento usize, no un tipo de entero normal como i32.

usize es el tipo entero sin signo del tamaño de un puntero de Rust; su tamaño depende de la arquitectura (32 bits en sistemas de 32 bits, 64 bits en sistemas de 64 bits).

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

Si tienes un i32 u otro tipo entero, tendrás que convertirlo:

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

Esto no se compilará:

let repeated = "z".repeat(num);
// Error: se esperaba usize, se encontró i32
challenge icon

Desafío

Fácil

Cada caso de prueba tiene una entrada: un número entero impar.
Tu tarea es imprimir una pirámide de n usando *; aquí tienes algunos ejemplos:

Pirámide de 1

*

Pirámide de 5

*
***
*****

Pirámide de 7

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

Entrada

  • Un entero impar n ingresado por el usuario
  • 1 <= n < 1000

Consejos

  • Prueba empezar con los triángulos pequeños
  • Consulta la pista si te quedas atascado ;)

n representa el número de * en la fila inferior

Nota: En Rust, las funciones que se ocupan del "size" o "length" de algo (como .repeat()) requieren un tipo llamado usize en lugar de i32; puedes tratar usize como un número entero normal que nunca es negativo.

Pruébalo tú mismo

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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Rust online