#include <iostream>
#include <cmath>
#include <cstdlib>

float IntFrac(int integer, int frac)
{
    float integer2 = integer;
    float frac2 = frac;

    float log10 = log10f(frac2 + 1.0f);
    float ceil = ceilf(log10);
    float pow = powf(10.0f, -ceil);

    float res = abs(integer);
    res += frac2 * pow;

    if (integer < 0)
    {
        res = -res;
    }

    return res;
}

int main(void) 
{
    std::cout << IntFrac(1, 1) << std::endl;
    std::cout << IntFrac(1, 10) << std::endl;
    std::cout << IntFrac(1, 9) << std::endl;
    std::cout << IntFrac(1, 99) << std::endl;

    std::cout << IntFrac(12, 1) << std::endl;
    std::cout << IntFrac(12, 10) << std::endl;
    std::cout << IntFrac(12, 9) << std::endl;
    std::cout << IntFrac(12, 99) << std::endl;

    std::cout << IntFrac(-1, 1) << std::endl;
    std::cout << IntFrac(-1, 10) << std::endl;
    std::cout << IntFrac(-1, 9) << std::endl;
    std::cout << IntFrac(-1, 99) << std::endl;

    std::cout << IntFrac(-12, 1) << std::endl;
    std::cout << IntFrac(-12, 10) << std::endl;
    std::cout << IntFrac(-12, 9) << std::endl;
    std::cout << IntFrac(-12, 99) << std::endl;

    return 0;
}