题目描述
实现1+2+3…+n,要求不能使用乘除法、循环、条件判断、选择相关的关键字。
思路
使用递归来解决这个问题
代码
#include <stdio.h>
int add(int n,int& sum)
{
n && add(n - 1,sum);
return sum += n;
}
int main()
{
int i = 0;
int n = 100;
int sum = 0;
printf("1+2+3+4+...+n=%d\n",add(n,sum));
return 0;
}
再看另外一种方式:
#include <iostream>
using namespace std;
class SUM
{
public:
SUM()
{
n += 1;
sum += n;
}
void Print()
{
cout << sum << endl;
}
private:
static int n;
static int sum ;
};
int SUM::n = 0;
int SUM::sum = 0;
int main()
{
SUM* p = (SUM*)new SUM[100];
p->Print();
delete p;
return 0;
}