#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int liczpoprzecinku = 0;
struct ulamek {
long long int licznik;
long long int mianownik;
};
int znaknaint(char znak){
switch (znak){
case '0':
return 0;
break;
case '1':
return 1;
break;
case '2':
return 2;
break;
case '3':
return 3;
break;
case '4':
return 4;
break;
case '5':
return 5;
break;
case '6':
return 6;
break;
case '7':
return 7;
break;
case '8':
return 8;
break;
case '9':
return 9;
break;
default:
return 0;
break;
}
}
long long int tworzliczbe(string tworzstring){
long long int liczbazam = 0;
unsigned short int licznik = 0;
unsigned long long int mnoznik = 1;
bool przecinek = false;
liczpoprzecinku = 0;
for (int i=tworzstring.length()-1; i>=0; i--){
if (tworzstring[i] != '.'){
licznik++;
if (tworzstring[i] == '-')
liczbazam *= -1;
liczbazam += znaknaint(tworzstring[i])*mnoznik;
mnoznik *= 10;
if (!przecinek)
liczpoprzecinku++;
}
else if (tworzstring[i] == '.')
przecinek = true;
}
return liczbazam;
}
int main(){
string lolstring = "";
cout << endl << endl << endl;
cout << "Podaj liczbe: ";
lolstring = "2345.433422345"; //komplacja online, na sztywno
ulamek ulamek1, ulamek2;
ulamek1.licznik = tworzliczbe(lolstring);
ulamek1.mianownik = pow(10, liczpoprzecinku);
cout << lolstring << " - lolstring" << endl;
cout << ulamek1.licznik << " - licznik" << endl;
cout << ulamek1.mianownik << " - mianownik" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWF0aC5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBsaWN6cG9wcnplY2lua3UgPSAwOwoKc3RydWN0IHVsYW1layB7CiAgICBsb25nIGxvbmcgaW50IGxpY3puaWs7CiAgICBsb25nIGxvbmcgaW50IG1pYW5vd25pazsKfTsKCmludCB6bmFrbmFpbnQoY2hhciB6bmFrKXsKICAgIHN3aXRjaCAoem5hayl7CiAgICAgICAgY2FzZSAnMCc6CgkJCXJldHVybiAwOwoJCQlicmVhazsKCQljYXNlICcxJzoKCQkJcmV0dXJuIDE7CgkJCWJyZWFrOwoJCWNhc2UgJzInOgoJCQlyZXR1cm4gMjsKCQkJYnJlYWs7CgkJY2FzZSAnMyc6CgkJCXJldHVybiAzOwoJCQlicmVhazsKCQljYXNlICc0JzoKCQkJcmV0dXJuIDQ7CgkJCWJyZWFrOwoJCWNhc2UgJzUnOgoJCQlyZXR1cm4gNTsKCQkJYnJlYWs7CgkJY2FzZSAnNic6CgkJCXJldHVybiA2OwoJCQlicmVhazsKCQljYXNlICc3JzoKCQkJcmV0dXJuIDc7CgkJCWJyZWFrOwoJCWNhc2UgJzgnOgoJCQlyZXR1cm4gODsKCQkJYnJlYWs7CgkJY2FzZSAnOSc6CgkJCXJldHVybiA5OwoJCQlicmVhazsKCQlkZWZhdWx0OgoJCQlyZXR1cm4gMDsKCQkJYnJlYWs7Cgl9Cn0KCmxvbmcgbG9uZyBpbnQgdHdvcnpsaWN6YmUoc3RyaW5nIHR3b3J6c3RyaW5nKXsKCWxvbmcgbG9uZyBpbnQgbGljemJhemFtID0gMDsKCXVuc2lnbmVkIHNob3J0IGludCBsaWN6bmlrID0gMDsKCXVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgbW5vem5payA9IDE7Cglib29sIHByemVjaW5layA9IGZhbHNlOwoJbGljenBvcHJ6ZWNpbmt1ID0gMDsKCglmb3IgKGludCBpPXR3b3J6c3RyaW5nLmxlbmd0aCgpLTE7IGk+PTA7IGktLSl7CgkJaWYgKHR3b3J6c3RyaW5nW2ldICE9ICcuJyl7CgkJCWxpY3puaWsrKzsKCQkJaWYgKHR3b3J6c3RyaW5nW2ldID09ICctJykKCQkJCWxpY3piYXphbSAqPSAtMTsKCQkJbGljemJhemFtICs9IHpuYWtuYWludCh0d29yenN0cmluZ1tpXSkqbW5vem5pazsKCQkJbW5vem5payAqPSAxMDsKCQkJaWYgKCFwcnplY2luZWspCgkJCQlsaWN6cG9wcnplY2lua3UrKzsKCQl9CgkJZWxzZSBpZiAodHdvcnpzdHJpbmdbaV0gPT0gJy4nKQoJCQlwcnplY2luZWsgPSB0cnVlOwkJCgl9CglyZXR1cm4gbGljemJhemFtOwkKfQoKCgppbnQgbWFpbigpewoJc3RyaW5nIGxvbHN0cmluZyA9ICIiOwoKCWNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8IGVuZGw7CgoJY291dCA8PCAiUG9kYWogbGljemJlOiAiOwoJbG9sc3RyaW5nID0gIjIzNDUuNDMzNDIyMzQ1IjsgICAgICAgICAvL2tvbXBsYWNqYSBvbmxpbmUsIG5hIHN6dHl3bm8KCgl1bGFtZWsgdWxhbWVrMSwgdWxhbWVrMjsKCgl1bGFtZWsxLmxpY3puaWsgPSB0d29yemxpY3piZShsb2xzdHJpbmcpOwoJdWxhbWVrMS5taWFub3duaWsgPSBwb3coMTAsIGxpY3pwb3ByemVjaW5rdSk7IAoKCWNvdXQgPDwgbG9sc3RyaW5nIDw8ICIgIC0gbG9sc3RyaW5nIiA8PCBlbmRsOwoJY291dCA8PCB1bGFtZWsxLmxpY3puaWsgPDwgIiAgLSBsaWN6bmlrIiA8PCBlbmRsOwoJY291dCA8PCB1bGFtZWsxLm1pYW5vd25payA8PCAiICAtIG1pYW5vd25payIgPDwgZW5kbDsKCglyZXR1cm4gMDsKfQ==