1166:求f(x,n);
【题目描述】
f(x,n)=\sqrt{n+\sqrt{(n-1)+\sqrt{(n-2)+\sqrt{...+2+\sqrt{1+x}}}}}
求x=4.2,n=10以及x=2.5,n=15时的f的值。
【输入输出样例】
输入:4.2 10
输出:3.68
【源代码】
#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
using namespace std;
double f(double x,double n){
if(n==1){//判断是否到达递归边界n=1
return sqrt(1+x);
}
//否则继续递归
return sqrt(n+f(x,n-1));
}
int main(){
double n,x;
cin>>x>>n;
printf("%.2lf",f(x,n));
return 0;
}
//♂_The_LYH_25_♂
1167:再求f(x,n)
【题目描述】
【输入输出样例】
输入:1 2
输出:0.40
【源代码】
#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
using namespace std;
double f(double x,double n){
if(n==1){//判断是否到达递归边界n=1
return x/(1+x);
}
//否则继续递归
return x/(n+f(x,n-1));
}
int main(){
double n,x;
cin>>x>>n;
printf("%.2lf\n",f(x,n));
return 0;
}
//♂_The_LYH_25_♂