函數遞歸之用遞歸方法求 f(n)

                           問題 K: C語言習題 用遞歸方法求 f(n)

題目描述

C語言習題 用遞歸方法求 f(n) = 12+22+...+n2  ,n的值由主函數輸入。

輸入

n的值。

輸出

 f(n) 的值。

#include <iostream>

using namespace std;

int fac(int n)

{

    int a;

    if(n==1) a=1;

    else a=fac(n-1)+n*n;

    return(a);

}

int main()

{

    int n;

    cin>>n;

    cout<<fac(n)<<endl;

    return 0;

}

從公式可以看到,第n項比第n-1項多加了n2,所以遞歸公式爲f(n)= f(n-1)+n2

自定義函數時,給出第一項的值(if(n==1) a=1;),利用遞歸原理(f(n)= f(n-1)+n2),給出其餘項(else)的值(a=fac(n-1)+n*n;)

在主函數中輸入數據(cin>>n;)並輸出結果(cout<<fac(n)<<endl;)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章