我有以下代码,理论上应该计算由a_0=1
和a_(n+1)=a_n+1/k!
的等式给出的序列的第n项的值。我知道那里没有因子,但除此之外,为什么这段代码不能正常工作?
我想输入一个数字,然后找到一个序列的第n个术语。我知道它不是Fibonnaci,即使这是函数的名称。
#include "stdafx.h"
#include "math.h"
int Fibonacci(float n) {
float F0 = 1;
float F;
int i;
if (n <= 1)
return(n);
for (i = 2; i <= n; i++) {
F = F0 + pow(n, -1);
F0 = F;
n+1;
}
return(F);
}
int _tmain(int argc, _TCHAR* argv[]) {
float k;
printf_s("numebr:\n");
scanf_s("%d", &k);
printf("Fibonacci(%d) = %f\n", k, Fibonacci(k));
return(0);
}
如何为这种类型的序列创建一个更好的算法,即开头提到的序列?
答案 0 :(得分:0)
您的函数返回一个int,但您想返回一个浮点数。 它应该是:
float Fibonacci(int n)
而不是:
int Fibonacci(float n)