Buscar

Solução URI 1022 em C++

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int MDC(int num, int den) {
 int r=0, aux=0;
 // if(num > den){
 // aux = num;
 // num = den;
 //den = aux;
 //}
 r = num % den; // Como calcular MDC
 while(r != 0) { // Como calcular MDC
 num = den; // Como calcular MDC
 den = r; // Como calcular MDC
 r = num % den; // Como calcular MDC
 }
 if(den == -2) {
 den = 2;
 }
 return den;
}
int main(void) {
 int N, N1, N2, D1, D2;
 int num=0, den=0, mdc=0;
 char Sinal, Barra1, Barra2;
 cin >> N;
 while(N--) {
 cin >> N1;
 cin >> Barra1;
 cin >> D1;
 cin >> Sinal;
 cin >> N2;
 cin >> Barra2;
 cin >> D2;
 if(Sinal == '+') {
 num = (N1*D2 + N2*D1);
 den = (D1*D2);
 cout << num << "/" << den << " = ";
 mdc = MDC(num, den);
 cout << num/mdc << "/" << den/mdc <<endl;
 }
 else if(Sinal == '-') {
 num = (N1*D2 - N2*D1);
 den = (D1*D2);
 cout << num << "/" << den << " = ";
 mdc = MDC(num, den);
 cout << num/mdc << "/" << den/mdc <<endl;
 }
 else if(Sinal == '*') {
 num = (N1*N2);
 den = (D1*D2);
 cout << num << "/" << den << " = ";
 mdc = MDC(num, den);
 cout << num/mdc << "/" << den/mdc <<endl;
 }
 else if(Sinal == '/') {
 num = (N1*D2);
 den = (N2*D1);
 cout << num << "/" << den << " = ";
 mdc = MDC(num, den);
 cout << num/mdc << "/" << den/mdc <<endl;
 }
 }
 
 return 0;
}
/*
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int MDC(int num, int den);
int main(void){
 int N, n1_n, n1_d, n2_n, n2_d, num=0, den=0, mdc=0;
 char barra1, barra2, operacao;
 cin >> N;
 while(N--) {
 cin >> n1_n;
		cin >> barra1;
		cin >> n1_d;
		cin >> operacao;
		cin >> n2_n;
		cin >> barra2;
		cin >> n2_d;
 if(operacao == '*') {
 num = n1_n * n2_n;
 den = n1_d * n2_d;
 cout << num << "/" << den << " = ";
 mdc = MDC(num, den);
 cout << num/mdc << "/" << den/mdc << endl;
 }
 else if(operacao == '/') {
 num = n1_n * n2_d;
 den = n1_d * n2_n;
 cout << num << "/" << den << " = ";
 mdc = MDC(num, den);
 cout << num/mdc << "/" << den/mdc << endl;
 }
 else if(operacao == '+') {
 den = n1_d * n2_d;
 num = (n1_n * n2_d) + (n1_d * n2_n);
 cout << num << "/" << den << " = ";
 mdc = MDC(num, den);
 cout << num/mdc << "/" << den/mdc << endl;
 }
 else if(operacao == '-') {
 den = n1_d * n2_d;
 num = (n1_n * n2_d) - (n1_d * n2_n);
 cout << num << "/" << den << " = ";
 mdc = MDC(num, den);
 cout << num/mdc << "/" << den/mdc << endl;
 }
 }
return 0;
}
int MDC(int num, int den) {
 int aux=0, i=0;
 num = fabs(num);
 den = fabs(den);
 if(num > den){
 aux = num;
 num = den;
 den = aux;
 }
 for(i = num; i == 1 || (num%i == 0 && den%i == 0); i--)
 return i;
}
*/

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando