Вычислить сумму всех чисел Фибоначчи, которые не превосходят заданного натурального числа М - C (СИ)
Формулировка задачи:
Здравствуйте, в программировании не очень силен. Поэтому прошу помочь найти недочеты в коде.
Программа должна вычислять сумму всех чисел Фибоначчи, которые не превосходят заданного натурального числа М. Через цикл while.
#include <stdio.h>
#include <math.h>
#include <locale.h>
#include <conio.h>
int f0;
int f1;
int f2;
int M;
int main()
{
setlocale(LC_ALL,"Russian");
{
printf("Вычислите сумму всех чисел Фибоначчи, которые не превосходят заданного натурального числа М. \n");
printf("Введите число M-");
scanf("%d",&M);
f0=0;
f1=1;
while(f2<M)
{
int f2=f0+f1;
f0=f1;
f1=f2;
}
printf("Сумма чисел Фибоначчи, меньше M=%d",f2);
}
return 0
}Решение задачи: «Вычислить сумму всех чисел Фибоначчи, которые не превосходят заданного натурального числа М»
textual
Листинг программы
#include <stdio.h>
int main(int argc, char *argv[])
{
int f0 = 0;
int f1 = 1;
int sum = 0;
int f2,M;
printf("Вычислите сумму ...\n");
printf("Введите число М:\n? ");
scanf("%d", &M);
while (f1 <= M) {
sum += f1;
f2 = f0 + f1;
f0 = f1;
f1 = f2;
}
printf("\nСумма равна: %d\n", sum);
return 0;
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки для работы с файлами и вывода данных.
- Объявление переменных: — f0 - первое число Фибоначчи, начальное значение равно 0; — f1 - второе число Фибоначчи, начальное значение равно 1; — sum - переменная для хранения суммы чисел Фибоначчи; — f2 - третье число Фибоначчи, в которое будет переходить значение f1; — М - натуральное число, введенное пользователем, ограничивающее сумму чисел Фибоначчи.
- Вывод сообщения с просьбой ввести число М.
- Считывание числа М с помощью функции scanf.
- Организация цикла по вычислению суммы чисел Фибоначчи: — Вычисление текущего значения f1 (f1 = f0 + f1). — Суммирование f1 и сохранение результата в переменной sum. — Обновление значений f0 и f1 для следующей итерации (f0 = f1; f1 = f2). — Проверка условия (f1 <= М) для прекращения цикла.
- Вывод сообщения с результатом вычислений.
- Возврат 0, означающий успешный конец работы программы.