TOPIC

PROBLEM 1002 - URI Fórum 1.0

URI Online Judge asked 7 years ago

URI Online Judge Fórum 1.0

MOD

This topic was solved and cannot recieve new replies.

  • Ericracia replied 4 years ago

    Vocês poderiam me ajudar com o problema 1002 em Python? Já tentei 15 variações de código, todas funcionam no Terminal, mas não são aceitas no URI Judge.

    pi = 3.14159
    radio = float(input())
    area = pi * (radio ** 2)
    print "A=%.4f" % area
  • Unknown replied 4 years ago

    #include <stdio.h>
    
    int main() {
        float raio;
        double pi=3.14159, area;
    
        scanf("%.2f",&raio);
        area=pow(raio,2)*pi;
        printf("A= %.4f \n",area);
    
        return 0;
    }

    Oi gente, o meu código está com 20% de erro. Alguém sabe aonde errei e como corrigir?

  • Fabio Gimene da Silva Souza replied 3 years ago

    Estou com um problema!

    Alguém poderia me ajudar.

    Porque esse código não esta sendo aceito?Como devo limitar as casas decimais?

    double area , raio , pi;
    
                pi = 3.1416;
    
                raio = Double.Parse(Console.ReadLine());
    
                area = (pi * raio * raio);
    
                Console.WriteLine("A="+ area);

    Obrigado!

  • victoride replied 4 years ago

    Pessoal, não consigo submeter meu código, dando Presentation Error mesmo com o "\n":

    R = float(input())
    pi = 3.14159
    A = pi * (R ** 2)
    
    print("A=%.4f\n" % A)

    Alguém manja o porquê?

  • Leonardo Simoes replied 3 years ago

    O principal problema pode ser resolvido colocando pi=3.14159, ou arredondando o valor de pi da biblioteca para 5 casas decimais, e na hora de imprimir exibir 4 casas decimais.

  • Isaac Alves replied 4 years ago

    Estou programando em Python (2.7.10), e não importa o que eu faça eu sempre recebo Wrong Answer depois do submit, fiz uns 9 exercícios diferentes

    Neste, por exemplo, "refactorei" o código de diversas formas até chegar a isso:

    R = float(raw_input())
    A = round(3.14159*R*R, 4)
    print 'A=%s' % A

    e continuo recebendo Wrong Answer.

    Alguma idéia do que pode estar acontecendo? Obrigado!

  • Isaac Alves replied 4 years ago

    Estou programando em Python, e não importa o que eu faça eu sempre recebo Wrong Answer depois do submit, fiz uns 9 exercícios diferentes

    Neste, por exemplo, "refactorei" o código de diversas formas até chegar a isso:

    R = float(raw_input()) A = round(3.14159RR, 4) print 'A=%s' % A

    e continuo recebendo Wrong Answer.

    Alguma idéia do que pode estar acontecendo? Obrigado!

  • Gustavo Marini replied 4 years ago

    Sempre defina as variáveis de dupla precisão como double. Faça a leitura somente como "scanf("%lf", &raio);". Sendo assim, mude também a saída para "lf". Você também está recebendo Presentation Error, isso porque você está colocando alguns espaços a mais na linha de impressão. Deixe ela assim:

    printf("A=%.4lf\n",area);

    Feito isso, seu código passará.

    MOD
  • Gustavo Marini replied 3 years ago

    Para formatar as casas decimais do valor utilize:

    Console.WriteLine("A="+ area.ToString("0.0000"));

    E mais um detalhe, o valor que você definiu para PI não condiz com o que é informado no problema. Isso causa erros de precisão posteriores o que levará você a um Wrong Answer. Use 3.14159 para PI.

    MOD
  • Vitor Martins Gonçalves replied 3 years ago

    Boa tarde. Estou submetendo o código abaixo que já testei repetidas vezes no NetBeans e continua acusando erro no URI. Não sei o que está dando de errado (o nome do public class não é, pois sempre mudo para main no URI). O NetBeans está configurado para ler double como vírgula como separador (5,5240 por exemplo), enquanto no URI consta ponto (5.5240 por exemplo).

    package teorialista1ex02d; import java.io.IOException; import java.util.Scanner;

    public class Main {

    public static void main(String[] args) throws IOException {
        double raio;
        Scanner sc = new Scanner(System.in);
        raio = sc.nextDouble();
        double area = (Math.PI * Math.pow(raio,2));
        System.out.printf("A=%.4f\n", area);
    }

    }

  • Gustavo Marini replied 4 years ago

    Olá, bom, acredito que o erro esteja na precisão decimal da função round(). Não sei se existe alguma diferença entre a função ou fazer a precisão direta no print, mas talvez a output final do problema possa ser diferente devido ao round().

    A = 3.14159*R*R
    print 'A=%.4f' % A
    MOD
  • Unknown replied 4 years ago

    include

    main() { float raio; double Pi=3.14159, area;

    scanf("%f",&raio);
    area= Pi*raio*raio;
    printf("A=%.4f\n",area);

    }

    onde errei?

  • Isaac Alves replied 4 years ago

    .

  • Unknown replied 4 years ago

    Testei com os Exemplos de Entrada. Dois deles geraram saídas ligeiramente diferentes dos Exemplos de Saída correspondentes.

    Reveja os separadores passados ao DecimalFormat. E não esqueça da quebra de linha, que deve haver também na última linha da saída.

    Exemplos e dicas úteis: Ajuda - URI Online Judge

  • João Vicente replied 4 years ago

    public class JavaApplication9 {

    public static void main(String[] args) {
      Locale.setDefault(Locale.US);
      Scanner ler = new Scanner(System.in);
        double R;
    
            R = ler.nextDouble();
        double y;
    
            y = 3.14159 *  (R*R);
    
      System.out.println("A=%.4f\n" +  y);
    
    }           

    }

    não consigo fazer ele ler duas casas decimais (20.20) e receber 4 (20.4000)

  • Unknown replied 4 years ago

    740ink, troca o raio*raio pelo pow e coloca um espaço no printf

    area=pow(raio,2)*pi
    printf("A= %.4f \n",area);
    return 0; //sempre coloque isso
  • Unknown replied 4 years ago

    Independente do arredondamento, um número pode nem possuir decimais:

    X=1
    print 'Sem decimais: %s' % X

    ...e ainda assim ser exibido com elas:

    X=1
    print 'Três decimais: %.3f' % X

    Alguns exemplos do uDebug tratam dessa questão.

  • Unknown replied 4 years ago

    Você também estava no caminho certo. Existem várias formas de se chegar ao mesmo resultado.

    Funcionaria com print ou println, mas para seguir o Exemplo de Saída, o formato de df não poderia conter a vírgula como separador de milhares: "0.0000"

  • João Vicente replied 4 years ago

    Obrigado pela ajuda mas acabei descobrindo meu erro, não estava usando o System.out.printf e com isso não conseguia limitar os caracteres por "%.4f\n" e descobri a função do "Locale", enfim, de qualquer maneira agradeço a disposição.

  • João Vicente replied 4 years ago

    Refiz o código e obtive a saída correta, porém fica dando wrong error 40%

    import java.io.IOException; import java.text.DecimalFormat; import java.util.Locale; import java.util.Scanner;

    public class Main {

    public static void main(String[] args) {
      Locale.setDefault(Locale.US);
      Scanner ler = new Scanner(System.in);
      DecimalFormat df = new DecimalFormat("###,##0.0000");
        double R = 0;
        double pi = 3.14159;
    
            R = ler.nextDouble();
    
        double y;
    
          y = (pi * R*R);
    
         System.out.print("A=");
         System.out.print(df.format(y));
    
    }           

    }

    Alguém pode me ajudar? Abraços.

1 of 13