C语言编程:求1,1/2,2/3,3/5,5/8,8/13的第n项
3个回答
展开全部
写成数学公式,分母是 1,2,3,5,8,13,21…………,每个都是前面的2个之和,即:
f(n)=f(n-1)+f(n-2),其中,为了方便计算,我们假设前面还有一个f(0),那f(0)就=f(2)-f(1)=1;(上面式子只是算分母);
而 分子,则 刚好是 前一个的分母,即上面 式子中 的 f(n-1);
于是,整合分子 分母, 式子就成了:
g(n)=f(n-1)/f(n), 函数f(n)=f(n-1)+f(n-2);(n>1)
写函数 f(n):
int fun(int n)
{
if(n<2) return 1;//f0=f1=1
return(fun(n-1)+f(n-2));//f(n)=f(n-1)+f(n-2)
}
函数 gn:
float sum_fun(int m)
{
if(m<0) return 0;
return((float)(fun(m-1))/fun(m));
}
f(n)=f(n-1)+f(n-2),其中,为了方便计算,我们假设前面还有一个f(0),那f(0)就=f(2)-f(1)=1;(上面式子只是算分母);
而 分子,则 刚好是 前一个的分母,即上面 式子中 的 f(n-1);
于是,整合分子 分母, 式子就成了:
g(n)=f(n-1)/f(n), 函数f(n)=f(n-1)+f(n-2);(n>1)
写函数 f(n):
int fun(int n)
{
if(n<2) return 1;//f0=f1=1
return(fun(n-1)+f(n-2));//f(n)=f(n-1)+f(n-2)
}
函数 gn:
float sum_fun(int m)
{
if(m<0) return 0;
return((float)(fun(m-1))/fun(m));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{
int n;
int m;
int k;
int i;
printf("请输入n值:");
scanf("%d",&n);
m=1;
k=1;
for(i=1;i<n;i++)
{
k=m;
m=k+m;
}
pirntf("%d/%d",k,m);
}
{
int n;
int m;
int k;
int i;
printf("请输入n值:");
scanf("%d",&n);
m=1;
k=1;
for(i=1;i<n;i++)
{
k=m;
m=k+m;
}
pirntf("%d/%d",k,m);
}
更多追问追答
追问
谢谢您!^_^
追答
main()
{
int n;
int h;
int m;
int k;
int i;
printf("请输入n值:");
scanf("%d",&n);
m=1;
k=1;
for(i=1;i<n;i++)
{
h=k;
k=m;
m=k+h;
}
pirntf("%d/%d",k,m);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询