Подсчет количества чисел Фибоначчи в заданной числовой последовательности. - C (СИ)
Формулировка задачи:
Дано 100 чисел от 1 до 50. Определить, сколько среди них чисел Фибоначчи и сколько чисел, первая значашая цифра в десятиричной записи которых 1 или 2.
Решение задачи: «Подсчет количества чисел Фибоначчи в заданной числовой последовательности.»
textual
Листинг программы
#include <stdio.h> int ChkFib(int *A,int n) { int max,i,curr,prev,c; max=A[0]; for(i=1;i<n;i++) if (A[i] > max) max=A[i]; curr=1; prev=1; c=0; while (1) { if (curr > max) break; for (i=0; i<n; i++) if (A[i]==curr) { c++; printf("%d ",curr); break; } i=curr+prev; prev=curr; curr=i; } return c; } int main(int argc, char* argv[]) { int Arr[8]={1,2,9,23,13,8,51,120}; printf("\n %d \n",ChkFib(Arr,8)); return 0; }
Объяснение кода листинга программы
- Включаем стандартную библиотеку ввода-вывода
- Объявляем функцию ChkFib, которая принимает на вход массив A и его размер n
- Инициализируем переменные: max — для хранения максимального числа в массиве A i — счётчик для цикла по массиву A curr — текущее число в цикле prev — предыдущее число в цикле c — счётчик для подсчёта чисел Фибоначчи
- Находим максимальное число в массиве A с помощью цикла for
- Инициализируем значения переменных curr, prev, c, а также устанавливаем флаг для выхода из цикла while
- Запускаем цикл while, который будет выполняться до тех пор, пока текущее число curr меньше или равно максимальному числу в массиве A
- Внутри цикла while проверяем каждый элемент массива A на равенство текущему числу curr
- Если число найдено, увеличиваем счётчик c и выводим текущее число и его индекс в формате
curr %d
- Обновляем значения переменных curr, prev, c и i
- В конце функции возвращаем значение счётчика c
- В функции main создаём массив Arr и инициализируем его значениями
- Вызываем функцию ChkFib, передавая в неё массив Arr и его размер
- Выводим результат работы функции ChkFib на экран
- Завершаем программу
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д