weixin_58459266
2021-05-27 18:15
采纳率: 100%
浏览 24

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • qfl_sdu 2021-05-27 19:01
    已采纳

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

    #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;
    }
    点赞 评论
  • Basesson 2021-05-27 18:43
    //递归
    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;
    }
    点赞 评论

相关推荐 更多相似问题