fork download
  1. #include <iostream>
  2. #include <cmath>
  3. #include <cstdlib>
  4.  
  5. float IntFrac(int integer, int frac)
  6. {
  7. float integer2 = integer;
  8. float frac2 = frac;
  9.  
  10. float log10 = log10f(frac2 + 1.0f);
  11. float ceil = ceilf(log10);
  12. float pow = powf(10.0f, -ceil);
  13.  
  14. float res = abs(integer);
  15. res += frac2 * pow;
  16.  
  17. if (integer < 0)
  18. {
  19. res = -res;
  20. }
  21.  
  22. return res;
  23. }
  24.  
  25. int main(void)
  26. {
  27. std::cout << IntFrac(1, 1) << std::endl;
  28. std::cout << IntFrac(1, 10) << std::endl;
  29. std::cout << IntFrac(1, 9) << std::endl;
  30. std::cout << IntFrac(1, 99) << std::endl;
  31.  
  32. std::cout << IntFrac(12, 1) << std::endl;
  33. std::cout << IntFrac(12, 10) << std::endl;
  34. std::cout << IntFrac(12, 9) << std::endl;
  35. std::cout << IntFrac(12, 99) << std::endl;
  36.  
  37. std::cout << IntFrac(-1, 1) << std::endl;
  38. std::cout << IntFrac(-1, 10) << std::endl;
  39. std::cout << IntFrac(-1, 9) << std::endl;
  40. std::cout << IntFrac(-1, 99) << std::endl;
  41.  
  42. std::cout << IntFrac(-12, 1) << std::endl;
  43. std::cout << IntFrac(-12, 10) << std::endl;
  44. std::cout << IntFrac(-12, 9) << std::endl;
  45. std::cout << IntFrac(-12, 99) << std::endl;
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0s 2732KB
stdin
Standard input is empty
stdout
1.1
1.1
1.9
1.99
12.1
12.1
12.9
12.99
-1.1
-1.1
-1.9
-1.99
-12.1
-12.1
-12.9
-12.99