Konwertowanie ułamków ósemkowych na ułamki dzisiętne
Ostatnio zmodyfikowano 2017-11-16 22:34
Crispo Temat założony przez niniejszego użytkownika |
Konwertowanie ułamków ósemkowych na ułamki dzisiętne » 2017-11-16 19:57:11 Co muszę zrobić? Napisać program który konwertuje ułamki ósemkowe na ułamki dziesiętne. Metodologia: Wpisujemy np. 0.75(8) i przelicza to na (10) 7 * 1/8 + 5 * 1/64 i tak dalej. Każda kolejna cyfra jest mnożona przez kolejną minusową potęgę 8 czyli 3 cyfra po kropce mnożona jest razy 1/512. Natomiast liczby przed . mnożone są w ten sposób: np. 31.75 ---> 1 * 8^0 + 3 * 8^1
Czego potrzebuję? Chcę w string wpisywać daną wartość np. podane wyżej 0.75.Za pomocą getline chciałbym zapisywać wartość przed . i po . W jaki sposób mam to zrobić? Wiem, że wartość do kropki mogę pobrać w ten sposób: getline(cin, n, '.'); Jak pobrać wartość po kropce? Jak zapisać to w tablicy i pobierać następne elementy z tablicy? To problem którego nie umiem sam przeskoczyć żeby przejść do dalszej części pisania. Nie musi być podany cały kod, ale chociaż wskazanie jak dojść do tego bo jestem zielony :/ Z góry dziękuję i liczę na szybką odpowiedź. |
|
mateczek |
» 2017-11-16 22:34:32 int main() { string liczba = "123.123"; double wynik = 0; bool doKropki = true; for( int i = 0; i < liczba.size(); i++ ) { if( liczba[ i ] == '.' ) { doKropki = false; continue; } if( doKropki ) { wynik = wynik * 8 + liczba[ i ] - '0'; } else { } } cout << wynik; } |
|
« 1 » |