#include <iostream>
#include <functional>
using namespace std;
std::function<int(int)> f;
int main() {
// your code goes here
f = [](int a) { if (a==0) return 1; else return a*f(a-1); };
int a = f(3);
std::cout << "a: " << a << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0ZDo6ZnVuY3Rpb248aW50KGludCk+IGY7CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQoJZiA9IFtdKGludCBhKSB7IGlmIChhPT0wKSByZXR1cm4gMTsgZWxzZSByZXR1cm4gYSpmKGEtMSk7IH07CgkKCWludCBhID0gZigzKTsKCQoJc3RkOjpjb3V0IDw8ICJhOiAiIDw8IGEgPDwgc3RkOjplbmRsOwoJcmV0dXJuIDA7Cn0=