基础递归

来源:互联网 发布:重庆链家端口费是多少 编辑:程序博客网 时间:2024/06/14 20:54

例题:给定n(n>=1),用递归的方法计算1+2+3+4+...... +(n-1)+n.

[算法分析]

   本题可以用递归方法求解,其原因在于它符合递归的三个条件:

(1)本题是累加问题:当前和=前一次和+当前项,而前一次和的计算方法与其相同,只是数据不同s(n)=s(n-1)+n;

(2)给定n,所以是有限次的递归调用;

(3)结束条件是当n=1时,则s=1;

[参考程序]

   #include<iostream>

   #include<cstdio>

   #include<cstring>

   using namespace std;

   int fac(int);

   int main()

   {

      int t;

      cin>>t;

      cout<<"s="<<fac(t)<<endl;

      return 0; 

    }

 

   int fac(int n)

   {

      if(n==1)return 1;

    return(fac(n-1)+n);

   }


原创粉丝点击