問題 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;)!