Найти первые 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 чисел Люка. Список вычислений можно описать следующим образом:

  1. Начинаем с чисел a1 = 1 и a2 = 3.
  2. Вычисляем первое число a3 = a1 + a2, то есть 1 + 3 = 4.
  3. Вычисляем второе число a4 = a2 + a3, то есть 3 + 4 = 7.
  4. Затем, в цикле от i = 3 до i <= k, выполняем следующие действия:
    • Присваиваем a1 значение a2.
    • Присваиваем a2 значение a3.
    • Присваиваем a3 значение a4.
    • Вычисляем новое значение a4 = a2 + a3, то есть 2 + 7 = 9.
  5. Повторяем шаги 4 для всех i от 4 до k. Таким образом, после выполнения цикла, в переменной a4 будет содержаться k-е число Люка.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.167 из 5
Похожие ответы