Информация об изменениях

Сообщение Re: Совсем чуть-чуть от 13.03.2015 7:30

Изменено 13.03.2015 7:31 Warlock78

inline int PositionsSum(int n)
{
    int sum = 0;
    while (n)
    {
        sum += n % 10;
        n /= 10;
    }
    return sum;
}


inline int FindMaxPositionsSumMaxNumber(const int x)
{
    if (x < 10)
        return x;

    int pos = 10;

    for (int i = x; i > 1000; i /= 10)
        pos *= 10;

    int res = x / pos * pos - 1;

    return PositionsSum(x) >= PositionsSum(res) ? x : res;
}


int main(void)
{
    freopen("input.txt",  "r", stdin);
    freopen("output.txt", "w", stdout);

    int num = 0;
    scanf("%d", &num);

    printf("%d\n", FindMaxPositionsSumMaxNumber(num));

    return 0;
}
Re: Совсем чуть-чуть