今天,室友问了一道奇奇怪怪的题
求:2/3+4/5+6/9+10/15+…前30项的和
踩雷:
①把分子和分母看成是直接+2,后来想想,这么简单室友也不会问我
发现分子是兔子数列,分母是前一项的分母和分子之和。
②递归忘了。
③循环数错了,正常i=0的话,前30项就是i<30,写成了i<=30。
OK,附代码
#include<stdio.h>
int fib(int n)
{
if(n==1){
return 2;
}
else if(n==2){
return 4;
}
else{
return fib(n-1)+fib(n-2);
}
}
int main()
{
double a=2,b=3,n=1;
float sum=0;
int i;
for(i=0;i<30;i++)
{
sum+=a/b;
b=a+b;
n++;
a=fib(n);
}
printf("前三十项和:%f",sum);
return 0;
}
感谢室友在期末紧要关头让我复习了一下下,感谢感谢|ू・ω・` )