0

Desafios em kotlin

A
Alfredo Neto

enunciado:


Intermediário

 Estrutura de Dados

A tarefa aqui neste problema é ler uma expressão matemática na forma de dois números Racionais (numerador / denominador) e apresentar o resultado da operação. Cada operando ou operador é separado por um espaço em branco. A sequência de cada linha que contém a expressão a ser lida é: número, caractere, número, caractere, número, caractere, número. A resposta deverá ser apresentada e posteriormente simplificada. Deverá então ser apresentado o sinal de igualdade e em seguida a resposta simplificada. No caso de não ser possível uma simplificação, deve ser apresentada a mesma resposta após o sinal de igualdade.

Considerando N1 e D1 como numerador e denominador da primeira fração, segue a orientação de como deverá ser realizada cada uma das operações:

Soma: (N1*D2 + N2*D1) / (D1*D2)

Subtração: (N1*D2 - N2*D1) / (D1*D2)

Multiplicação: (N1*N2) / (D1*D2)

Divisão: (N1/D1) / (N2/D2), ou seja (N1*D2)/(N2*D1)

Entrada

A entrada contem vários casos de teste. A primeira linha de cada caso de teste contem um inteiro (1 ≤ ≤ 1*104), indicando a quantidade de casos de teste que devem ser lidos logo a seguir. Cada caso de teste contém um valor racional (1 ≤ ≤ 1000), uma operação (-, +, * ou /) e outro valor racional (1 ≤ ≤ 1000).

Saída

A saída consiste em um valor racional, seguido de um sinal de igualdade e outro valor racional, que é a simplificação do primeiro valor. No caso do primeiro valor não poder ser simplificado, o mesmo deve ser repetido após o sinal de igualdade.

 

Exemplo de EntradaExemplo de Saída4

1 / 2 + 3 / 4

1 / 2 - 3 / 4

2 / 3 * 6 / 6

1 / 2 / 3 / 4

10/8 = 5/4

-2/8 = -1/4

12/18 = 2/3

4/6 = 2/3



SALVAR salvo 6 minutos atrás

×






1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23



import java.io.*;

class Main {

static int resultN = 0;

static int resultD = 0;

public static int mdc(int a, int b) {

if (b == 0) {

return a;

}

else {

return mdc(b, a%b);

}

}

public static void calc(String op, int n1, int d1, int n2, int d2) {

switch (op) {

case "+":

resultN = (n1*d2 + n2*d1);

resultD = (d1*d2);

break;

case "-":

resultN = (n1*d2 - n2*d1);


 


TESTES

EXECUTAR TESTES


Código:

import java.io.*;


class Main {

  static int resultN = 0;

  static int resultD = 0;

      

  public static int mdc(int a, int b) {

    if (b == 0) {

      return a;

    }

    else {

      return mdc(b, a%b);

    }

  }

  

  public static void calc(String op, int n1, int d1, int n2, int d2) {

    switch (op) {

      case "+":

        resultN = (n1*d2 + n2*d1);

        resultD = (d1*d2);

        break;

      case "-":

        resultN = (n1*d2 - n2*d1);

        resultD = (d1*d2);

        break;

      case "*":

        resultN = (n1*n2);

        resultD = (d1*d2);

        break;

      case "/":

        resultN = (n1*d2);

        resultD = (n2*d1);

        break;

      default:

        break;

    }

    

    if (resultN == 0) {

      resultD = 0;

    }

  }

  

  public static void main(String[] args) throws NumberFormatException, IOException {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    

    String entry = br.readLine();

    int n = Integer.parseInt(entry);

    

    for (int i = 0; i < n; i++) {

      String s = br.readLine();

      String[] ss = s.split(" ");

      

      int n1 = Integer.parseInt(ss[0]);

      int d1 = Integer.parseInt(ss[2]);

      int n2 = Integer.parseInt(ss[4]);

      int d2 = Integer.parseInt(ss[6]);


      String op = ss[3];      

      calc(op, n1, d1, n2, d2);


      int div = mdc(resultN, resultD);

    

      if (div < 0) {

        div *= -1;

      }

      

      System.out.println(resultN + "/" + resultD + " = " + resultN/div + "/" + resultD/div);

    }

  }

}

testes 1 de 4 testes deu sucesso 3 testes errados:


Por favor peço humildemente ajuda de todos no desafio tda relacional em kotlin mostre-me o código correto do desafio pra eu fazer a comparação a titulo de comparação boa noite desde já agradeço a atenção boa noite muito obrigado pela atenção deus os abençoe boa noite


0
0

Comentários (0)

alfredo gelk neto

Brasil