Найти первые k чисел Люка - C (СИ)
Формулировка задачи:
Ребят , помогите такая прога :Числа Люка определяются так: первое число равно 1, второе равно 3,
каждое следующее равно сумме двух предыдущих. Составить программу,
которая находит первые k чисел Люка (k – задается пользователем).
Определить номер последнего числа Люка, которое входит в диапазон
типа int (long int). Вывести в виде таблицы данное число Люка и три
предыдущих с их номерами. Написал код ,но он работает только для первых 4 чисел , дальше не считает , в чем ошибка ?
Листинг программы
- #include<stdio.h>
- #include<limits.h>
- #include <locale.h>
- int main()
- {
- setlocale(LC_ALL,"");
- int a,b,c,a1,a2,a3,a4,i,k;
- printf("введи колличество членов люка\n");
- scanf("%d",&k);
- printf("k=%d\n",k);
- a1=1;
- a2=3;
- for(i=3;i<=k;i++)
- {if (i=3) {a3=a1+a2;}
- if (i=4) {a4=a2+a3;}
- if ((i>4)&&((INT_MAX-a3)>=a4))
- {
- a=a2;
- b=a3;
- c=a4;
- a1=a;
- a2=b;
- a3=c;
- a4=b+c;}
- else {break;}
- }
- printf("a%d=%d\n",i,a4);
- printf("a%d=%d\n",i-1,a3);
- printf("a%d=%d\n",i-2,a2);
- printf("a%d=%d\n",i-3,a1);
- return 0;
- }
Решение задачи: «Найти первые k чисел Люка»
textual
Листинг программы
- a1 = 1;
- a2 = 3;
- a3 = a1 + a2;
- a4 = a2 + a3;
- for (i = 3; i <= k; ++i) {
- a1 = a2;
- a2 = a3;
- a3 = a4;
- a4 = a2 + a3;
- }
Объяснение кода листинга программы
В данном коде выполняется вычисление первых k чисел Люка. Список вычислений можно описать следующим образом:
- Начинаем с чисел a1 = 1 и a2 = 3.
- Вычисляем первое число a3 = a1 + a2, то есть 1 + 3 = 4.
- Вычисляем второе число a4 = a2 + a3, то есть 3 + 4 = 7.
- Затем, в цикле от i = 3 до i <= k, выполняем следующие действия:
- Присваиваем a1 значение a2.
- Присваиваем a2 значение a3.
- Присваиваем a3 значение a4.
- Вычисляем новое значение a4 = a2 + a3, то есть 2 + 7 = 9.
- Повторяем шаги 4 для всех i от 4 до k. Таким образом, после выполнения цикла, в переменной a4 будет содержаться k-е число Люка.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д