#include <iostream>
#include <functional>
int main() {
std::function<int(int)> fac = [&fac](int x){ return x > 0 ? x * fac(x-1) : 1; };
std::cout << fac(5) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCmludCBtYWluKCkgewoJc3RkOjpmdW5jdGlvbjxpbnQoaW50KT4gZmFjID0gWyZmYWNdKGludCB4KXsgcmV0dXJuIHggPiAwID8geCAqIGZhYyh4LTEpIDogMTsgfTsKCXN0ZDo6Y291dCA8PCBmYWMoNSkgPDwgc3RkOjplbmRsOwoJcmV0dXJuIDA7Cn0=