Zamiana ułamków
Ostatnio zmodyfikowano 2016-10-30 17:13
krolik5a Temat założony przez niniejszego użytkownika |
Zamiana ułamków » 2016-10-30 16:49:11 Cześć, czy mógłby mi ktoś pomóc w zadaniu? Treść jest taka: Zamień ułamek dziesiętny na zwykły nieskracalny. Np.: 0.5 = 1/2, 0.3 = 3/10, 0.25 = 1/4 Wejście W pierwszym wierszu standardowego wejścia zapisano ułamek dziesiętny W (0.001 ≤ W ≤ 0.999), z maksymalnie trzema miejscami po przecinku. Wyjście W pierwszym wierszu standardowego wyjścia wypisz obliczony ułamek zwykły w postaci nieskracalnej (licznik’/’mianownik). Mój kod wygląda tak: #include <bits/stdc++.h> using namespace std; int main() { float W, x, y = 1000; cin >> W; x = W * 1000; if( fmod( x, 10 ) == 0 ) { while( fmod( x, 10 ) == 0 && fmod( y, 10 ) == 0 ) { x = x / 10; y = y / 10; } } if( fmod( x, 2 ) == 0 ) { while( fmod( x, 2 ) == 0 && fmod( y, 2 ) == 0 ) { x = x / 2; y = y / 2; } } if( fmod( x, 5 ) == 0 ) { while( fmod( x, 5 ) == 0 && fmod( y, 5 ) == 0 ) { x = x / 5; y = y / 5; } } cout << x << "/" << y << endl; }
Z góry dziękuję za pomoc :) |
|
pekfos |
» 2016-10-30 17:13:29 z maksymalnie trzema miejscami po przecinku. |
Pomnóż razy 1000 i podziel przez NWD wyniku i 1000. |
|
« 1 » |