TOPIC

Por que o programa é aceito como correto?

Jander Moreira asked 3 years ago

Pessoal,

Alguém sabe o porquê do programa abaixo ser aceito como correto para o problema 1070? Quando a entrada é ímpar, ele não produz qualquer saída.

Pelo que entendi do problema, se a entrada for, por exemplo, 9, então a saída deveria ser 9, 11, 13, 15, 17, 19, não?

# Python 3

X=int(input())

if X//2==X/2:
    a=X+1
    b=X+3
    c=X+5
    d=X+7
    e=X+9
    f=X+11
    print(a)
    print(b)
    print(c)
    print(d)
    print(e)
    print(f)

Obrigado,

Jander

Remember not post solutions. Your post may be reviewed by our moderators.

  • Jander Moreira replied 3 years ago

    Olá, João Vitorino.

    De fato, tirando o IF o código é aceito com sucesso. Persiste minha dúvida se os casos de teste realmente atendem ao enunciado.

    Até

  • Joao Vitorino replied 3 years ago

    Provavel que nenhum dos testes do programa utilize um entrada impar. Portanto o seu IF nunca é testado.

  • Carlos Silva replied 1 month ago

    Amigo, esta questão é bem simples de se resolver. Para esta questão basta capturar o valor, em seguida implementar um laço "for" para precorre o range (X, (X + (6 * 2))) e, em seguida, verificar se o valor do passo para cada interação é ou não divisível por "2" e, em seguida, printar o valor do passo casso, o mesmo, NÃO seja PAR.

  • Tupy replied 1 month ago

    A saída do seu código só estar correta para números pares, por exemplo o 8:

    8 + 1 = 9 8 + 3 = 11 ... 8 + 11 = 19

    Porem, se o número for impar a saída estara errada, por exemplo o 9:

    9 + 1 = 10 no primeiro caso já tem um erro

    Aproveitando o código uma solução é:

    if(X % 2 == 0):
    
      a = X + 1 
      ...
     else:
    
       a = X 
       b = X + 2 
       ...