编写一个递归函数和一个非递归函数,分别实现求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;
}