不同方法实现1+2+3+4+5+….+n

  • Post author:
  • Post category:其他


方法一:

普通函数实现:

#include<stdio.h>
int Sum(int n)
{
	int sum = 0;
	while (n)
	{
		sum += n;
		n--;
	}
	return sum;
}
int main()
{
	printf("%d ", Sum(10));
	return 0;
}

方法二:

递归实现:

#include<stdio.h>
int Sum(int N)
{
	if (N == 1)
		return 1;
	else
	{
		return N + Sum(N - 1);
	}
}
int main()
{
	printf("%d ", Sum(10));
	return 0;

}

方法三:

使用构造函数实现:

#include<iostream>
using namespace std;
class Sum
{
public:
	Sum()
	{
		n++;
		sum = sum + n;
	}
	static int GetSum()
	{
		return sum;
	}
	void Initsum()
	{

	}
private:
	static int n;
	static int sum;
};
int Sum::n = 0;
int Sum::sum = 0;
int main()
{ 
	
	Sum * p = new Sum[10];
	
	cout << Sum::GetSum() << endl;
	delete[] p;
    return 0;
}

方法四:

非类型模板参数编程


#include <iostream>
using namespace std;
template <int N>
int Sum()
{
	return N + Sum<N - 1>();
};
template <>
int Sum<1>()
{
	return 1;
}
int main()
{
	cout << Sum<10>() << endl;
	return 0;
}



版权声明:本文为qq_36782456原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。