Dúvida de repetição

14/08/2019

0

Estou tentando responder esse exercício e não consigo.. Alguém teria essa solucão em java, python ou C?


Maria está participando de um programa de intercâmbio no reino da Nlogônia. Ela está gostando
muito da experiência, e decidiu fazer um churrasco para suas novas amigas da escola. Como não
tem muito dinheiro, Maria vai fazer uma pesquisa para comprar carne no supermercado mais barato
que encontrar.
No entanto ela está um pouco confusa para saber qual supermercado tem o menor preço. O dinheiro
na Nlogônia é o Bit, abreviado por B$, mas não é esse o problema. O problema é que o costume na
Nlogônia é informar o preço de uma maneira diferente do que Maria está acostumada. Os preços
são anunciados como “X Bits por Y gramas do produto”.
Por exemplo o preço de um dado produto é anunciado como sendo B$ 24,00 por 250 gramas em
um supermercado, B$ 16,00 por 100 gramas em outro supermercado, B$ 19,00 por 120 gramas em
outro supermercado, e assim por diante.
Você pode ajudar Maria?
Dados os preços anunciados pelos supermercados no bairro em que Maria mora, determine o menor
valor que Maria deve gastar para comprar 1 kilograma (1000 gramas) de carne.
Entrada
A primeira linha contém um número inteiro N, o número de supermercados próximos à casa de
Maria. Cada uma das N linhas seguintes indica o preço da carne em um supermercado e contém
um número real P e um número inteiro G, indicando que G gramas de carne custam P Bits.
Saída
Seu programa deve produzir uma única linha, com apenas um número real, o menor preço para
comprar 1 kilograma de carne. O resultado deve ser escrito com exatamente dois dígitos após o
ponto decimal.
Restrições
• 1 ≤ N ≤ 100
• 0 < P ≤ 1000:00, representado com dois dígitos após o ponto decimal.
• 1 ≤ G ≤ 1000
Exemplo de entrada 1
3
3.0 100
2.0 100
5.0 100
Exemplo de saída 1
20.00


Exemplo de entrada 2
4
100.00 500
190.00 1000
200.00 900
110.00 550
Exemplo de saída 2
190.00
Leonardo Delmondes

Leonardo Delmondes

Responder

Post mais votado

14/08/2019

Achei o texto do problema um pouco confuso, isso aqui serve?:

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Teste {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Quantos supermercados existem perto da casa de Maria?");
        int N = scanner.nextInt();
        ArrayList<Double> P = new ArrayList<Double>();
        ArrayList<Integer> G = new ArrayList<Integer>();
        ArrayList<Double> resultadoFinal = new ArrayList<Double>();
        DecimalFormat decimalFormat = new DecimalFormat("00.00");
        for(int i = 0; i < N; i++){
            System.out.print("Quanto custa a carne no " + (i + 1) + "° supermercado?");
            P.add(scanner.nextDouble());
            System.out.print("por quantas gramas de carne?");
            G.add(scanner.nextInt());
            resultadoFinal.add((G.get(i)/1000)*P.get(i));
        }
        Collections.sort(resultadoFinal);
        System.out.println("O kilo de carne mais barato custa: B$" + decimalFormat.format(resultadoFinal.get(0)));
}
}

Sadasd

Sadasd
Responder

Mais Posts

14/08/2019

Leonardo Delmondes

No valor final só imprime R$00,00
Responder

15/08/2019

Sadasd

No valor final só imprime R$00,00


Opa, foi mal amigão, cometi uma gafe matemática, deveria ser:

resultadoFinal.add((P.get(i)*1000)/G.get(i));


Ao invés de:

resultadoFinal.add((G.get(i)/1000)*P.get(i));


Então ficaria assim:

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Teste {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Quantos supermercados existem perto da casa de Maria?");
        int N = scanner.nextInt();
        ArrayList<Double> P = new ArrayList<Double>();
        ArrayList<Integer> G = new ArrayList<Integer>();
        ArrayList<Double> resultadoFinal = new ArrayList<Double>();
        DecimalFormat decimalFormat = new DecimalFormat("00.00");
        for(int i = 0; i < N; i++){
            System.out.print("Quanto custa a carne no " + (i + 1) + "° supermercado?");
            P.add(scanner.nextDouble());
            System.out.print("por quantas gramas de carne?");
            G.add(scanner.nextInt());
            resultadoFinal.add((P.get(i)*1000)/G.get(i));
        }
        Collections.sort(resultadoFinal);
        System.out.println("O kilo de carne mais barato custa: B$" + decimalFormat.format(resultadoFinal.get(0)));
}
}
Responder

16/08/2019

Leonardo Delmondes

Funcionou perfeitamente. muito obg..
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar