Executando verificação de segurança...
1

beecrowd - 1323 - Feynman(Me Ajude a Resolver, Camaradas)

Estou tentando resolver este desafio em c# mas minha resolução não Funciona, Alguém pra ajudar?

O Desafio é este abaixo

Richard Phillips Feynman era um físico americano muito famoso e ganhador do Prêmio Nobel de Física. Ele trabalhava em física teórica e também foi pioneiro no campo da computação quântica. Ele visitou a América do Sul por dez meses, dando palestras e aproveitando a vida nos trópicos. Ele também é conhecido pelos livros "Surely You’re Joking, Mr. Feynman!" e "What Do You Care What Other People Think?", que inclui algumas de suas aventuras abaixo do equador.

Sua paixão da vida inteira era resolver e criar quebra-cabeças, trancas e códigos. Recentemente, um fazendeiro idoso da América do Sul, que hospedou o jovem físico em 1949, achou alguns papéis e notas que acredita-se terem pertencido a Feynman. Entre anotações sobre mesóns e eletromagnetismo, havia um guardanapo onde ele escreveu um simples desafio: "quantos quadrados diferentes existem em um quadriculado de N x N quadrados?".

No mesmo guardanapo havia um desenho, que está reproduzido abaixo, mostrando que para N = 2, a resposta é 5.

Entrada
A entrada contém diversos casos de teste. Cada caso de teste é composto de uma única linha, contendo apenas um inteiro N, representando o número de quadrados em cada lado do quadriculado (1 ≤ N ≤ 100).

O final da entrada é indicado por uma linha contendo apenas um zero.

**Saída
Para cada caso de teste na entrada, seu programa deve imprimir uma única linha, contendo o número de diferentes quadrados para a entrada correspondente.
**
Exemplo de Entrada
2
1
8
0
Exemplo de Saída
5
1
204

Meu código

using System; 

class URI {

    static void Main(string[] args) { 
        
        int N = int.Parse(Console.ReadLine());
        int r = 0;

       

        while (true)
        {
            while (N < 0 || N > 100 ) 
            {
                N = int.Parse(Console.ReadLine());
            }
        
            if (N == 0)
            {
                break;
            }
            
            for (int i = 0; i <= N; i++)
            {
                r += i * i;
            }
            Console.WriteLine(r);
            r = 0;
            N = int.Parse(Console.ReadLine());
        }
    }
}
Carregando publicação patrocinada...
1

Eu não vou te ajudar resolver, até porquen ão disse qual é a dificuldade que está tendo, mas pode dizer que este código quebra se digitar uma letra poe exemplo e fere a premissa básica, e ele poderia ter sio feito até mesmo com 5 linhas úteis (6 com o }). Poderia ter apenas 2 loops, e até mesmo 1 se fizesse uma pré memoização dos resultados de 1 a 100, que seria mais rápido de executar, mas gastaria um pouco mas de memória. Pesquise mais. Melhorar o código pode ficar com um exercício extra.

Cuidado com o ciclo: aprende errado, treina-o, recebe validação, ensina errado, briga pelo erro.

Ajudei? Era o meu desejo.


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).