Забавная рекурсия

Не сразу понятно, что функция находит ближайшую степень двойки, недостатки такого подхода очевидны:

int ToPow2(int i)
{
    if( i == 2 || i == 4 || i == 8 || i == 16
       || i == 32 || i == 64 || i == 128
       || i == 256 || i == 512 || i == 1024 )
        return i;
    else
         return ToPow2(i+1);
}

Оставить комментарий