Проблема с ранней проблемой Эйлера в C - почему я получаю вывод "nan"? - PullRequest
2 голосов
/ 28 июня 2011

Возможно небольшая проблема для этого форума, но здесь идет речь:

Проблема ProjectEuler.net # 2 выглядит следующим образом:

Рассматривая условия в Последовательность Фибоначчи, значения которой не превысить четыре миллиона, найти сумму четные условия.

Почему я получаю вывод "nan"?

#include <stdio.h>

int fiblist[] = {0,1};
long double sum = 0;

void fibonacci(){
  int i = 2;
  while (fiblist[i] < 4000000){
    fiblist[i] = fiblist[i-1] + fiblist[i-2];
    i++;
  }
}

void main(){
  fibonacci();
  int i = 0;
  for (i = 0; i != '\0'; i++){
    if (fiblist[i] % 2 == 0)
      sum += fiblist[i];
  }
  printf("%Lf \n", sum);
}

1 Ответ

4 голосов
/ 28 июня 2011

while (фиблист [i] <4000000) {</strong>

На данный момент вы фактически ничего не присвоили fiblist [i] .

(Кроме того, не связано, но зачем вам двойное число, если вы работаете только с целыми числами, значительно меньшими, чем 2 ** 31?)

...