已知ios
计算x=4.2,n=1以及x=2.5,n=15时f的值。算法
输入x和n。函数
函数值,保留两位小数。atom
4.2 10
3.68
1.看见这种一个套着一个还带着诡异符号的,
基本上都是函数+循环(递归嘛)的套路。
话说这题一开始我没看明白,
从n怎么变到x+1的???
再看看,
好像是由n变到1,而后最后那个根号里面有个x;
让咱们递归一下,写写代码。
2.这就是正解了
#include<iostream> #include<cstdio> #include<cmath> using namespace std; double gen(double x,double n);//声明一个double型的函数,最后保留两位输出。 int main() { double n,x; double result; cin>>x>>n; result=gen(x,n); printf("%.2lf\n",result); return 0; } double gen(double x,double n)//定义一下这个“根”函数 { if(n==1) return sqrt(1+x); else return sqrt(n+gen(x,n-1));//这时候就是递归最灵魂的操做,调用本身 }
3.该递归的就要递归,spa
递归的题和通常的函数+循环有区别(其实也不大),xml
基本上有如下特征:blog
(1):一个函数套本身,好比f(f(x)),递归
正常的循环题只有不一样参数函数值之间的加法或乘法。ci
(2):大部分的题,不用递归你作不出来...(或是很差作...)io
因此嘛,作题以前必定先想一想要用什么算法或者结构什么的,
否则代码打到一半不会打了太尴尬...