求 1/1 + 1/2 + 2/3 + 3/5 + 5/8 .... 前 n 项之和!
我太丢人了,弄来弄去还错了一大把!强烈反省,认真学习!
现在总结一下,引以为戒!
#include
#include
#include
//递归算法
double func(int n, int a = 1, int b = 1) {
if(n == 1) {
return (double)a/b;
} else {
return (double)a/b + func(n-1, b, a+b);
}
}
//非递归算法
double func2(int n) {
double result = 0;
int f1,f2;
f1 = f2 = 1;
for(int i=0; i result += (double)f1/f2;
int temp = f2;
f2 = f1+f2;
f1 = temp;
}
return result;
}
int main() {
int a;
scanf("%d", &a);
printf("func(%d) = %f\n", a, func(a));
return 0;
}
从今后我要加强算法了!混不下去了!没脸见人了
阅读(1116) | 评论(0) | 转发(0) |