Написать программу, выводящую последовательность чисел Фибоначчи - C (СИ)
Формулировка задачи:
Написать программу, выводящую последовательность чисел Фибоначчи. Количество элементов последовательности ввести с консоли
Решение задачи: «Написать программу, выводящую последовательность чисел Фибоначчи»
textual
Листинг программы
#include <stdio.h>
#include <gmp.h>
int main()
{
int n;
scanf("%d", &n);
if ( n <= 0 )
puts("Count can't be negative!");
else
{
printf("1 ");
if ( n >= 2 )
printf("1 ");
mpz_t a, b, c;
mpz_inits(a, b, c, NULL);
mpz_set_ui(a, 1);
mpz_set_ui(b, 1);
for (int i = 3; i <= n; ++i)
{
mpz_add(c, a, b);
mpz_set(a, b);
mpz_set(b, c);
mpz_out_str(stdout, 10, c);
printf(" ");
}
}
return 0;
}
Объяснение кода листинга программы
1 В начале программы объявляются переменные:
— n (целочисленная) для хранения числа, которое вводит пользователь. — a, b, c (типа mpz_t) для хранения чисел Фибоначчи.
2 Выводится сообщение с просьбой ввести число.
3 Если число меньше или равно нулю, выводится сообщение об ошибке.
4 Если число больше или равно 2, выводится сообщение об ошибке.
5 Инициализируются и очищаются переменные a, b, c.
6 Задаются начальные значения для a и b (равные 1).
7 В цикле от 3 до n (где n — это введенное пользователем число) выполняются следующие действия:
— Складываются значения a и b, результат сохраняется в переменной c. — Значения a и b обновляются значением c. — Выводится значение c в десятичной форме.