Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dodawanie ułamków SPOJ

Ostatnio zmodyfikowano 2017-08-13 21:19
Autor Wiadomość
pawlowski
Temat założony przez niniejszego użytkownika
Dodawanie ułamków SPOJ
» 2017-08-12 21:17:43
http://pl.spoj.com/problems/FR_01_02/
Sędzia pokazuje błędną odpowiedź. Pomoże ktoś odpowiednio nakierować

C/C++
#include <iostream>
using namespace std;
unsigned long NWD( unsigned long a, unsigned long b )
{
    while( b )
    {
        swap( a %= b, b );
    }
    return a;
}
unsigned long NWW( unsigned long a, unsigned long b )
{
    return a / NWD( a, b ) * b;
}
int main()
{
    unsigned long l1, l2, m1, m2;
    char znak;
    cin >> l1 >> znak >> m1;
    cin >> l2 >> znak >> m2;
   
    unsigned long licznik, mianownik;
    mianownik = NWW( m1, m2 );
    licznik = mianownik / m1 * l1 + mianownik / m2 * l2;
   
    cout << l1 << znak << m1 << " + " << l2 << znak << m2 << " = " << licznik << znak << mianownik << endl;
   
    return 0;
}
P-163937
Kinexity
» 2017-08-12 21:24:56
while( b ) { }
 - czy to na pewno miało tak być?
P-163940
maly7
» 2017-08-12 21:29:39
"Ułamek wynikowy powinien być przedstawiony w postaci nieskracalnej."
Spróbuj jeszcze licznik i mianownik podzielić przez wspólny dzielnik licznika i mianownika.

W twoim kodzie dodając 6/2 + 6/2 wychodzi 12/2 a powinno 6/1 (ew. 6)
P-163941
pawlowski
Temat założony przez niniejszego użytkownika
» 2017-08-13 21:19:45
Mocno przesadziłem z założeniem tego tematu :)  Mój błąd polegał na tym, że słowo "nieskracalny" oczami wyobraźni widziałem wciąż jako "skracalny". Dzięki za zwrócenie uwagi na moją "ślepotę". Więcej już nie będę zakładać tego typu durnych tematów.
P-163962
« 1 »
  Strona 1 z 1