У математиці знак оклику !
часто означає фактор, і він настає після аргументу.
У програмуванні знак оклику !
часто означає заперечення, і це ставиться перед аргументом.
Для цього виклику ми застосуємо лише ці операції до нуля та однієї.
Factorial
0! = 1
1! = 1
Negation
!0 = 1
!1 = 0
Візьміть рядок нуля або більше !
's, за яким 0
або 1
, за ним нуль або більше !
' s ( /!*[01]!*/
).
Наприклад, вхідний сигнал може бути !!!0!!!!
або !!!1
або !0!!
або 0!
або 1
.
"З !
" перед 0
або 1
є запереченнями, а !
"після" - історіями.
Факториал має більшу перевагу, ніж заперечення, тому факториали завжди застосовуються першими.
Наприклад, !!!0!!!!
справді означає !!!(0!!!!)
, а ще краще !(!(!((((0!)!)!)!)))
.
Виведіть результативне застосування всіх факторіалів та заперечень. Вихід завжди буде 0
або 1
.
Випробування
0 -> 0
1 -> 1
0! -> 1
1! -> 1
!0 -> 1
!1 -> 0
!0! -> 0
!1! -> 0
0!! -> 1
1!! -> 1
!!0 -> 0
!!1 -> 1
!0!! -> 0
!!!1 -> 0
!!!0!!!! -> 0
!!!1!!!! -> 0
Виграє найкоротший код у байтах.