Вычислить сумму всех чисел Фибоначчи, которые не превышают N - C (СИ)
Формулировка задачи:
Помогите решить задачу.
Дано натуральное число N>10. Вычислить сумму всех чисел Фибоначчи, которые не превышают N. Числа Фибоначчи образуются по закону: f1 =1, f2 =1, f3 =f1 + f2, fk+1 =fk-1 +fk .
Уже 2 часа сижу и туплю(((
#include<stdio.h>
main()
{
int n;
int f;
int f1;
int f2;
int s;
f = 0;
s = 0;
f1 =1;
f2 = 1;
clrscr ();
printf ("Введите максимальное значение числового ряда* ");
scanf ("%d",&n);
while (n>=f)
{
f = f1 + f2;
f1 = f2;
f2 = f;
s +=f;
}
printf ("Сумма чмсел Фибоначчи числового ряда до %d равна** %d",n,s);
}Решение задачи: «Вычислить сумму всех чисел Фибоначчи, которые не превышают N»
textual
Листинг программы
#include <stdio.h>
int main()
{
unsigned long f1, f2, t, n, sum;
while (printf("enter a number: ") && scanf("%lu", &n) && n) {
sum = 0;
for (f1 = 0, f2 = 1;
f1 < n;
t = f1, f1 = f2, f2 = f2 + t)
sum += f1;
printf("Sum of fibonacci numbers which "
"less than %lu is %lu\n", n, sum);
}
return 0;
}
Объяснение кода листинга программы
В этом коде используется цикл while, который продолжается до тех пор, пока пользователь не введет число и не нажмет кнопку Enter. Код вычисляет сумму всех чисел Фибоначчи, которые не превышают N. В начале кода объявлены следующие переменные: f1 - первое число Фибоначчи f2 - второе число Фибоначчи t - временная переменная n - число, введенное пользователем sum - сумма чисел Фибоначчи Затем в цикле while происходит следующее:
- Выводится сообщение
enter a number:и пользователь вводит число. - Переменная sum инициализируется значением 0.
- В цикле for происходит вычисление чисел Фибоначчи. Начальное значение f1 равно 0, а f2 равно 1. Затем значения f1 и f2 обновляются в каждой итерации цикла. Значение t используется для сохранения значения f1 перед его обновлением.
- К переменной sum добавляется значение f1.
- Выводится сообщение
Sum of fibonacci numbers which less than %lu is %lu\n, n, sum), где n - это число, введенное пользователем, а sum - сумма чисел Фибоначчи. После завершения цикла while программа завершается и возвращает 0.