Начиная с 1 и 2, первые 10 членов Серии Фибоначчи будут:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Найдите сумму всех четных членов в последовательности, которые не превышают 4 млн.
Теперь у меня появилась идея, как это сделать. Но я запутался в типах данных для хранения таких больших данных. Я получаю странные результаты с int
. (
БОЛЬШЕ: Это проект Эйлера, 2-й вопрос. Но я не могу получить это. Я получаю сумасшедшие ценности как ответ. Может кто-нибудь выложить пожалуйста идеальную программу?
РЕДАКТИРОВАТЬ: Вот что я написал для простой печати Фибоначчи на экране. Голый Basic. Моя переменная сходит с ума, даже когда я даю 100 за предел. Мой код неверен?
// Simple Program to print Fibonacci series in Console
#include <stdio.h>
int main() {
int x=1,y=2,sum=0,limit=0,i=0,temp=0;
printf("Enter Limit:");
scanf("%d",&limit);
if(limit==1)
printf("%d",x);
else if(limit>1) {
printf("%d %d",x,y);
if (limit>2) {
while (i<limit-2) {
temp=y;
sum=x+y;
x=temp;
y=sum;
printf(" %d",sum);
i++;
}
}
}
printf("\n");
return 0;
}
РЕШЕНО: На самом деле мне удалось найти решение самостоятельно. Вот моя программа. Это работает.
#include <stdio.h>
int main() {
int x=1,y=2,sum,limit; //Here value of first 2 terms have been initialized as 1 and 2
int evensum=2; //Since in calculation, we omit 2 which is an even number
printf("Enter Limit: "); //Enter limit as 4000000 (4million) to get desired result
scanf("%d",&limit);
while( (x+y)<limit ) {
sum=x+y;
x=y;
y=sum;
if (sum%2==0)
evensum+=sum;
}
printf("%d \n",evensum);
return 0;
}