题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
class Solution {
public:
int Sum_Solution(int n) {
if(n == 1)
return n;
int sum = n+Sum_Solution(n-1);
return sum;
}
};
class Solution {
public:
int Sum_Solution(int n) {
return n*(1+n)/2;
}
};
class Solution {
public:
int Sum_Solution(int n) {
int sum = n;
sum && (sum += Sum_Solution(n-1));
return sum;
}
};
class Tmp
{
public:
Tmp()
{
++N;
Sum+=N;
}
static void Reset(){N = 0; Sum = 0;}
static unsigned int GetSum() {return Sum;}
private:
static unsigned int N ;
static unsigned int Sum;
};
unsigned int Tmp::N = 0;
unsigned int Tmp::Sum = 0;
class Solution
{
public:
friend class Tmp;
public:
int Sum_Solution(int n)
{
Tmp::Reset();
Tmp *a = new Tmp[n];
delete[] a;
a = NULL;
return Tmp::GetSum();
}
};
class Solution {
public:
int Sum_Solution(int n) {
int ans = n;
ans && (ans += Sum_Solution(n - 1));
return ans;
}
};
class Solution {
public:
int Sum_Solution(int n) {
int sum = n;
n && (sum += Sum_Solution(n-1));
return sum;
}
};
class Solution {
public:
int Sum_Solution(int n) {
int sum = n;
if(n == 1)
{
return 1;
}
return sum + Sum_Solution(n-1);
}
};
class Solution {
public:
int Sum_Solution(int n) {
int ret = n;
n == 0 || (ret += Sum_Solution(n - 1));
return ret;
}
};
class Solution {
public:
int Sum_Solution(int n) {
int ret = 0;
n == 0 || (ret = Sum_Solution(n - 1));
return n + ret;
}
};