TEMA

PROBLEM 1133 - URI Fórum 1.0

URI Online Judge preguntado 8 years ago

URI Online Judge Fórum 1.0

MOD

Este tema fue resuelto y no puede recibir nuevas respuestas.

  • Gustavo Marini respondido 4 years ago

    Rode o seu código com o seguinte caso de teste:

    12
    18

    A saída para a respectiva saída deve ser:

    13
    17

    Se precisar de mais testes para verificar o que está errado, acesse a página do uDebug do problema.

    MOD
  • Unknown respondido 4 years ago

    Sempre veja se há entradas sugeridas no uDebug.

    Quando nos deparamos com dúvidas ou dificuldades nos problemas, alguns de nós incluímos enteadas lá, para ajudar outros usuários que possam ter dificuldades semelhantes.

  • Davi Ribeiro Balbino respondido 4 years ago

    O também esta dando erro de 10%... Alguem pode me ajudar?

    Scanner leia = new Scanner(System.in); int x, y; x = leia.nextInt(); y = leia.nextInt();

        if (x > 0 && y > 0) {
            if (x < y) {
                for (int i = x; i < y; i = i + 1) {
                    if (i % 5 == 2 || i % 5 == 3) {
                        System.out.println(i);
                    }
                }
            }
    
            if (x > y) {
                for (int i = y; i < x; i = i + 1) {
                    if (i % 5 == 2 || i % 5 == 3) {
                        System.out.println(i);
                    }
                }
            }
        }
  • Unknown respondido 4 years ago

    Teste com a entrada:

    2 4

    a saída deveria ser:

    3

    Há outros exemplos de entradas no uDebug.

  • Gustavo Marini respondido 4 years ago

    Não pense nisso somente pelo caso de teste do portal. Acredito que um com a sua condição ele não mostrará o y, mas mostrará o x. Acredito realmente que os 10% de erro sejam por causa disso.

    MOD
  • strongrc respondido 4 years ago

    mas nao ta imprimindo o x ou o y

  • Gustavo Marini respondido 4 years ago

    Ou seja, você não deve imprimir nem o x e nem o y.

    MOD
  • strongrc respondido 4 years ago

    estou recebendo 10% de erro ja testei pelo uDebug minha saida ta saindo igual,alguém sabe me dizer o pq q ta dando 10%de erro?

    x=int(input())
    y=int(input())
    aux=0
    if x>y:
        aux=x
        x=y
        y=aux
    for x in range(x, y):
        if x%5==2 or x%5==3:
            print("{}".format(x))
  • Gustavo Marini respondido 4 years ago

    Isso quer dizer que você não deve imprimir nem o x e nem o y. Pra fazer isso você pode fazer uma verificação rápida dentro do seu if:

    if(i!=x)

    e

    if(i!=y)

    Isso fará com que seu código não imprima os valores.

    MOD
  • Vitor respondido 4 years ago

    Está dando WA 10%

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int x,y,i;
    
        cin >> x >> y;
    
        if (x>y){
            for (i=y;i<x;i++){
                if (((i%5)==2)||((i%5)==3)){
                    cout << i << endl;
                }
            }
        }
        else if (x<y){
            for (i=x;i<y;i++){
               if (((i%5)==2)||((i%5)==3)){
                    cout << i << endl;
                }
            }
        }
        return 0;
    }
  • Gustavo Marini respondido 4 years ago

    "...imprima todos os valores entre eles cujo resto..."

    O seu código está pegando os valores, incluindo a variável "a". Faça o seguinte: dentro de ambos os laços "for" coloque:

    for(int i = a; i < b; i++){
        if (i!=a and i % 5 == 2 || i % 5 == 3){
            ...

    e:

    for(int i = b; i < a; i++){
        if (i!=b and i % 5 == 2 || i % 5 == 3){
            ...

    Espero que isso resolva o problema. Se não resolver, pode ser algo com a ordenação das variáveis.

    MOD
  • Harrison respondido 4 years ago

    #include <iostream>
    
    using namespace std;
    
    int main ()
    {
        int a, b;
    
        cin >> a;
        cin >> b;
    
        for(int i = a; i < b; i++)
        {
            if (i % 5 == 2 || i % 5 == 3)
            {
    
                cout << i << endl;
            }
    
        }
    
        for(int i = b; i < a; i++)
        {
            if (i % 5 == 2 || i % 5 == 3)
            {
    
                cout << i << endl;
            }
    
        }
    
        return 0;
    }
    O QUE ESTA ERRADO ESTA COM 10% de erro
  • Sulivan Simões respondido 4 years ago

    alguém sabe porque a esta dando resposta 'closed' nesse código?

    include

    int main(void) { int n1,n2,i,aux;

    scanf("%d",&n1);
    scanf("%d",&n2);
    
    if(n2>n1){
        aux = n1;
        n1 = n2;
        n2 = aux;
    } 
    for(i=n2+1;i<n1;i++)
    {
        if(i%5==2 || i%5==3){
            printf("%d\n",i);
        }
    }
    return 0;

    }

  • Gabriel de Paula respondido 5 years ago

    por favor, alguém me ajuda?? ñ compila corretamente no uri dá "Runtime error"

    include include

    int main(){ int x,y,a,b,c,d,e,f; scanf ("%i %i",&x, &y); for (x=1; x/ y; x++){ if(x%y == 2) printf ("%i\n",x); } for (a=1; a / b;a++){ if (a%b ==3) printf("%i\n",a); } for (c=1; c / d; c++){ if (c%d == 3) printf("%i\n",c); } for (e=1; e / f; e++){ if (e%f == 5) printf("%i\n",e); }

        system ("pause");}
  • Terence Marinho respondido 5 years ago

    Boa tarde! Uma possibilidade seria usar um laço for que comece no consecutivo do número, em ambos os casos (x < y e/ou x > y). Ex.:

    for (cont = x + 1 [ou y + 1]; cont < x [ou y]; cont++)
    {
    [...]
    }

    Deu pra entender, amigo?!

    MOD
  • Rafael Rodrigues Da Silva respondido 5 years ago

    mas não tenho a minima ideia decomo arrumar sera que vc pode me ajudar ou dar uma dica

  • Terence Marinho respondido 5 years ago

    Bom dia, Rafael! Seu código está considerando também o menor número das entradas na contagem, quando o problema solicita os números entre as entradas fornecidas. Exemplo de caso de teste para comprovar:

    Entradas: 12 / 17 (ou o inverso) Saída do URI: 13 Sua saída: 12 / 13 (para ambos os casos)

    MOD
  • Rafael Rodrigues Da Silva respondido 5 years ago

    Alguem pode me ajudar meu codigo esta dando Wrong answer (10%)

    #include <stdio.h>
    
    int main() {
     int x,y;
        scanf("%d",&x);
        scanf("%d",&y);
        while(x<y){
            if(x%5==2 || x%5==3)
            printf("%d\n",x);
            x++;
    
        }
        if(x>y){
        while(y<x){
          if(y%5==2 || y%5==3)
            printf("%d\n",y);
            y++;
        }
    }
        return 0;
    }
  • marcelo respondido 5 years ago

    Pessoal meu código da time limit exceteed oque há de errado?

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    int valor,valor1;
    
    scanf("%d",&valor);
    scanf("%d",&valor1);
    
    if (valor < valor1)
    
    {
        valor = valor + 1;
    while(valor != valor1)
    {
    if(valor % 5 == 2 || valor % 5 == 3)
    {
    printf("%d\n",valor);
    }
    
    valor++;
    }
    }
    else if (valor1 < valor)
    
    {
        valor1 = valor1 + 1;
    while(valor1 != valor)
    {
    if(valor1 % 5 == 2 || valor1 % 5 == 3)
    {
    printf("%d\n",valor1);
    }
    
    valor1--;
    }
    }
    else if(valor = valor1)
    {
    
      system("pause");
    
    }
    
    }
  • Terence Marinho respondido 5 years ago

    Bom dia, zennom! Seu código funciona perfeitamente quando a primeira entrada é menor que a segunda, mas e quando for o contrário?

    MOD