编写函数fun,函数的功能是:求一分数序列 2/1,3/2,5/3,8/5,13/8,21/13…的前n项 之和。

编写函数fun,函数的功能是:求一分数序列
2/1,3/2,5/3,8/5,13/8,21/13…的前n项
之和。

每一分数的分母是前两项的分母之和
每一分数的分子是前两项的分子之和

例如:求前20项之和的值为32.660259。

--------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
------------------------------------------------*/
#include "stdio.h"

float fun(int n)
{

/**********Program**********/

第1个回答  2011-06-30
PHP版函数
<?php
function getresult($c){
$a=array();
$b=array();
$a[-1]=0;
$a[0]=1;
$d[-1]=1;
$d[0]=1;
for($j=1;$j<=$c;$j++){
$d[$j] =$d[$j-1]+$d[$j-2];
$a[$j] =$a[$j-1]+$a[$j-2];
}
for($i=1;$i<=$c;$i++){
$num +=$d[$i]/$a[$i];
}
return $num;
}
echo getresult(20);
?>
JS版函数
<script>
function getresult(c){
var a=new Array();
var d=new Array();
a[-1]=0;
a[0]=1;
d[-1]=1;
d[0]=1;
for(j=1;j<=c;j++){
d[j] =d[j-1]+d[j-2];
a[j] =a[j-1]+a[j-2];
}
var num=0;
for(i=1;i<=c;i++){
num +=d[i]/a[i];
}
return num;
}
var ddd=getresult(20);
ttt =parseInt(ddd);//整数结果
eee =parseFloat(ddd);//带小数的结果
alert(ttt);
</script>
根据你自己的需要选择吧