Skip to content

Latest commit

 

History

History
70 lines (55 loc) · 1.75 KB

File metadata and controls

70 lines (55 loc) · 1.75 KB

Exercício

45 - Temos um triângulo feito de blocos. A primeira linha do triângulo tem 1 bloco, a segunda linha tem 2 blocos, a terceira linha tem 3 blocos, e por ai fora. Completa o método Triang, que, dado o número de linhas, determina recursivamente (sem ciclos ou multiplicações) o número total de blocos num triângulo deste tipo. Por exemplo, ao receber o valor 4, o método retorna o valor 10 correspondente ao número de blocos, como indicado em baixo:

  • * - 1 bloco
  • ** - 2 blocos
  • *** - 3 blocos
  • **** - 4 blocos

Método devolve 10, pois existem 10 blocos (asteriscos) ao todo.

De modo a testares o método, cria posteriormente um programa que solicite um número inteiro ao utilizador, invoque o método Triang e imprima no ecrã o número devolvido.

static int Triang(int linhas)
{
    // Completar este método
}

Sugerido por João Duarte, adaptado de http://codingbat.com/prob/p194781.

Soluções

Solução 1

static void Main(string[] args)
{
    // Declarar variaveis
    int linhas;

    // Solicitar linhas ao utilizador
    Console.WriteLine("Quantas linhas tem?");
    linhas = Convert.ToInt32(Console.ReadLine());

    // Chamar o método Triang(x) e imprimir o resultado
    Console.WriteLine($"O triangulo tem no total:\n" +
        $"{Triang(linhas)} blocos");
}

static int Triang(int linhas)
{
    // Variavel temporária
    int totalLinhas = 0;

    // Iniciar a recurcividade até a variavel linhas ser <= 0
    if (linhas > 0)
    {
        totalLinhas = Triang(linhas - 1) + linhas;
    }
    else
    {
        linhas = 0;
    }

    // Retornar o resultado final
    return totalLinhas;
}

Por Tomás Franco