在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C++/ 用一個指定要放入兩個右值參數(shù)的function做階層

用一個指定要放入兩個右值參數(shù)的function做階層

Q.最近看到了一個題目如下,要用一個函數(shù)做出兩個數(shù)字相加後的階層,並用遞迴方式寫出:

"Implement a C++ function that computes the factorial of the summation of the two integers using rvalue references as arguments.The function needs to be a recursive function."

我知道怎麼用兩個函數(shù)做出來,但是實在不知道怎麼濃縮成一個函數(shù)...請大神幫忙!

回答
編輯回答
柒槿年
int fac(int &&a, int &&b) {
  if (b == 0)
    return a > 0 ? fac(a-1, 0) * a : 1;
  return fac(a+b, 0);
}

int fac(int &&a, int &&b) {
  if (a > 0)
    return fac(a-1, b+0) * (a+b);
  else if (b > 0)
    return fac(a+0, b-1) * (a+b);
  else
    return 1;
}
2018年3月24日 03:43
編輯回答
眼雜
unsigned int fac(unsigned int&& n1, unsigned int&& n2)
{
    if(n1+n2 == 0) return 1;
    return (n1+n2) * fac(n1+n2-1, 0);
}

不知道是否滿足要求,不過這個題是在考察啥.

2017年9月18日 00:48