Can someone explain to me why the output is 6? And what does the line return refun(a-1,b-1)*a;
mean?
The code is below:
#include <iostream>
using namespace std;
long refun(int a, int b) {
if (a >= 0 && b == 0)
return 1;
else if (a == 0 && b>0)
return 0;
else
return refun(a - 1, b - 1)*a;
}
int main()
{
int x = 3, y = 2;
long z = refun(x, y);
cout << z;
return 0;
}