Guide for Caga tió!


Això és una guia per ajudar-te a començar amb aquest problema — no és la solució.
Mostra el codi per a: Consideracions generals Java 11 Python 3

Com abordar aquest problema

Per cada generació n has de saber com es diu el vers d'aquella generació, sabent que el nom \ evoluciona amb el temps ("tió" es converteix en "cagatió", després en "cagacagatió", etc). La \ sortida sempre té la forma Caga <nom>tio!, on <nom> és una repetició de la paraula caga \ (que pot ser zero vegades, com passa a les primeres generacions).

Idea general:

  1. Llegeix el nombre de casos i, per cadascun, el número de generació n.
  2. Rellegeix l'enunciat amb calma: hi explica exactament cada quantes generacions el nom \ incorpora un caga més. Tradueix això a un càlcul (per exemple amb una divisió entera) que et \ digui quantes vegades cal repetir caga per a una generació concreta.
  3. Construeix el text repetint la paraula caga tantes vegades com hagis calculat, i afegeix \ tio! al final.
  4. Munta la línia completa: Caga seguit del text que has construït.
  5. Mostra aquesta línia per cada cas de prova.

Paranys habituals:

  • El problema demana escriure "tio" sense tilde (tal com diu l'enunciat), no "tió".
  • No confonguis el nombre de vegades que s'ha de repetir caga amb el propi número de \ generació — no és el mateix; estudia bé els exemples per trobar la relació correcta.

Pista per a Java

Fes servir un StringBuilder per anar afegint les repeticions de "caga":

import java.util.*;

public class Main {
    static String vers(int n) {
        // calculeu aqui quantes vegades cal repetir "caga" per a la generacio n
        int repeticions = 0; // substituiu per la formula correcta, deduida de l'enunciat

        StringBuilder sb = new StringBuilder("Caga ");
        for (int i = 0; i < repeticions; i++) {
            sb.append("caga");
        }
        sb.append("tio!");
        return sb.toString();
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int casos = Integer.parseInt(sc.nextLine().trim());

        for (int i = 0; i < casos; i++) {
            int n = Integer.parseInt(sc.nextLine().trim());
            System.out.println(vers(n));
        }
    }
}

Tornar al problema