对于黄金比例值Ф,有以下求值方法
1.Ф=
即为根号递归
#include <bits/stdc++.h>
using namespace std;
double result=1;
void solve(){
result=sqrt(1+result);
}
int main(){
//根号递归法
int n;
scanf("%d",&n);
while(n--){
solve();
}
printf("%.20f",result);//位数
}
2.上述式子可令第一个根号内部分为x,则
x=
解得(根号为负时不符合根号非负性,舍)
#include <bits/stdc++.h>
using namespace std;
int main(){
//化简后
printf("%.10f",(sqrt(5)+1)/2);
}
3.递归算法2
Ф=
#include <bits/stdc++.h>
using namespace std;
double result=1;
void solve(){
result=1.0+1.0/result;
}
int main(){
//递归
int n;
scanf("%d",&n);
while(n--){
solve();
}
printf("%.20f",result);
}
4.斐波那契数列求法
#include <bits/stdc++.h>
using namespace std;
int fib[20],i=2;
void fi(){
fib[i]=fib[i-1]+fib[i-2];
i++;
}
int main(){
//斐波那契
fib[0]=1,fib[1]=1;
int n;
scanf("%d",&n);
while(n--){
fi();
}
printf("%.20f",fib[i-1]*1.0/fib[i-2]);
}
以上为部分求解方式