编写递归函数和非递归函数

编写一个递归函数和一个非递归函数,分别实现求1+2+3+...+n

代码如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
//递归方法
int sum(int n)
{
	if(n == 1)
		return 1;
	else
		return n + sum(n-1);
}

//非递归方法
int sum_2(int n)
{
	int ss = 0;
	for (int i = 1; i <=n;i++)
	{
		ss += i; 
	}
	return ss;
}

int main()
{
	int n;
	printf("请输入n:");
	scanf("%d",&n);
	
	int s1 = sum(n);
	int s2 = sum_2(n);
	printf("递归计算=%d;循环计算=%d\n",s1,s2);
	return 0;
}

 

//递归
unsigned long sum_(unsigned int n)
{
    if(n>1)
    {
        return n+sum_(n-1);
    }
    else
    {
        return n;
    }
}

//非递归
unsigned long sum(unsigned int n)
{
    unsigned int sumn = 0;
    while(n)
    {
        sumn += n--;
    }
    return sumn;
}