用c语言 有一个数列,2/1,3/2,5/3,8/5,13/8,21/13...求这组数前N项的积

就是这个函数求前n项的机用for循环或者用while谢谢主要是想要2/13/25/3的表示方法之强没有说清楚... 就是这个函数 求前n项的机 用 for循环 或者用 while
谢谢
主要是想要 2/1 3/2 5/3 的表示方法 之强没有说清楚
展开
 我来答
gglddqccdc
2010-04-26 · TA获得超过4082个赞
知道小有建树答主
回答量:372
采纳率:100%
帮助的人:659万
展开全部
说明:题目要求“用c语言 有一个数列,2/1,3/2,5/3,8/5,13/8,21/13...求这组数前N项的积”,但最后一个“积”字显然是“笔”误,因为,求积的话,结果就是最后一项的分子,没有必要兴师动众地写程序了。所以,这里把题目改一下:“用c语言 有一个数列,2/1,3/2,5/3,8/5,13/8,21/13...求这组数前N项的和”,注意:最后一个字是已经改为“和”,而不是“积”了。

#include "stdio.h"
main()
{
int n=21;
float fbnqfs(int j);

clrscr();
printf("s is %9.9f\n",fbnqfs(n));
getche();
}

float fbnqfs(int j)
{
int i;
float m=1,n=1,t,s=0;
for(i=1;i<=j;i++)
{
t=m+n;
s=s+t/n;
m=n;
n=t;
}
return s;
}
【main()中的n可以任意定义。这样的写法,完全符合斐波那契数列的展开顺序。本程序在TC3.0调试通过。】
冬日狂想曲
2010-04-26 · TA获得超过225个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:114万
展开全部
//计算一下,就知道结果是斐波那契数列,
int fun_1(int n)
{
if(n==1) return 2;
if(n==2) return 3;
return fun_1(n-1)+fun_1(n-2);
}
//也可以
int fun_2(int n)
{
int val1=2;
int val2=3;
int i,tmp;

if(n==1) return val1;
if(n==2) return val2;
for(i=2; i<n; i++){
tmp=val2;
val2+=val1;
val1=tmp;
}
return val2;
}
建议使用非递归的实现方法fun_2,如果n数值大的话,递归带来的栈空间消耗太大,而且执行效率低。虽然递归很灵巧,但是尽量避免使用递归。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
3D_王
推荐于2018-04-13 · TA获得超过1042个赞
知道小有建树答主
回答量:196
采纳率:50%
帮助的人:130万
展开全部
int Get_Product(int N)
{
int vi_Return=0;
if (N==1)
vi_Return=2;
else if (N==2)
vi_Return=3;
else
vi_Return=Get_Product(N-1)+Get_Product(N-2);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式