Dúvida de repetição

Java

Python

C

14/08/2019

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

Curtidas 0

Melhor post

Sadasd

Sadasd

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)));
}
}
GOSTEI 1

Mais Respostas

Leonardo Delmondes

Leonardo Delmondes

14/08/2019

No valor final só imprime R$00,00
GOSTEI 0
Sadasd

Sadasd

14/08/2019

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)));
}
}
GOSTEI 0
Leonardo Delmondes

Leonardo Delmondes

14/08/2019

Funcionou perfeitamente. muito obg..
GOSTEI 0
POSTAR