Подорожуй з gofrie.com

Елеганний код

public class Program {
    public static int Puzzle(int number, int power) {    
         return power == 0 ? 1 : power == 1 ? number : number * Puzzle(number, power-1);
    }
}


Вгадайте що за функція, я й не знав, що можна так закрутити код…
  • 0
  • 18 жовтня 2014, 12:57
  • kutsyk
Автор має нагороди

Коментарі (4)

RSS згорнути / розгорнути
Та ладно, як на мене, ні разу не елегантно.

public class Program {
    public static int Puzzle(int number, int power) {    
         return power == 0 ? 1 : (power & 1 ? number : 1) * Puzzle(number * number, power / 2);
    }
}


Так вже краще.
0
  • avatar
  • FTL
  • 18 жовтня 2014, 22:11
Але нажаль не працює. Перевіряй тут.
www.codehunt.com/
Задача 3.01
0
Правильно, я перевіряв на плюсах, а C# не конвертує bool в int автоматично.

using System;
public class Program {
    public static int Puzzle(int number, int power) {    
         return power == 0 ? 1 : ((power & 1) == 1 ? number : 1) * Puzzle(number * number, power / 2);
    }
}

Тепер працює.
0
Супер=-)
0