1.求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
class Solution {
public:
int sumNums(int n) {
if(n==1)return 1;//递归结束条件
return n+sumNums(n-1);
}
};
2.递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。
class Solution {
public:
int multiply(int A, int B) {
if(A==0||B==0){
return 0;
}
if(A==1)return B;
if(B==1)return A;
return multiply(A,B-1)+A;
}
};