在C中键入数字后查找序列的第n个项

时间:2014-12-07 15:48:32

标签: c

我有以下代码,理论上应该计算由a_0=1a_(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);
}

如何为这种类型的序列创建一个更好的算法,即开头提到的序列?

1 个答案:

答案 0 :(得分:0)

您的函数返回一个int,但您想返回一个浮点数。 它应该是:

float Fibonacci(int n)

而不是:

int Fibonacci(float n)