问题 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;)!