
Помогите сделать пожалуйста! Задан массив, заполненный последовательностью из N вещественных
чисел. Вычислить сумму чисел, порядковые номера которых являются числами Фибоначчи.

Ответы на вопрос

Відповідь:
Указывайте Язык программирования
С++ code:
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <math.h>
void randarr(float *arr,const int size){
for(int i = 0; i < size; i++){
arr[i] = float (rand())/RAND_MAX*100;
}
}
void printarr(float *arr,const int size){
for(int i = 0; i < size; i++){
std::cout << arr[i] << " ";
}
}
void sumfib(float *arr,const int size){
float sum = 0;
for(int i = 0; i < size; i++){
if (sqrt(5*(i+1)*(i+1)-4) - int(sqrt(5*(i+1)*(i+1)-4)) == 0 || sqrt(5*(i+1)*(i+1)+4) - int(sqrt(5*(i+1)*(i+1)+4)) == 0){
std::cout<<"+"<<"\t";
sum += arr[i];
}
else{
std::cout<<"\t";
}
std::cout << i + 1 << "\t" << arr[i] << std::endl;
}
std::cout << "Cумма чисел, порядковые номера которых являются числами Фибоначчи: " << sum << std::endl;
}
int main(){
srand(time(NULL));
setlocale(LC_ALL , "Rus");
int size;
std::cout << "Введите колво чисел в последовательности: ";
std::cin >> size;
float *arr = new float[size];
std::cout << "Последовательность: ";
randarr(arr,size);
printarr(arr,size);
std::cout << "Результат: " << std::endl;
sumfib(arr,size);
delete[] arr;
return 0;
}



Для решения этой задачи вам нужно выполнить следующие шаги:
Определите числа Фибоначчи, которые меньше или равны N (длине вашего массива).
Создайте цикл, который перебирает элементы массива и проверяет, является ли порядковый номер текущего элемента числом Фибоначчи.
Если порядковый номер числа в массиве соответствует числу Фибоначчи, добавьте его значение к общей сумме.
Вот пример кода на Python, который решает эту задачу:
pythondef is_fibonacci(n):
# Функция для проверки, является ли число n числом Фибоначчи
if n <= 1:
return True
a, b = 1, 1
while b < n:
a, b = b, a + b
return b == n
def sum_fibonacci_numbers(arr):
# Функция для вычисления суммы чисел с порядковыми номерами, являющимися числами Фибоначчи
total = 0
for i, num in enumerate(arr):
if is_fibonacci(i + 1):
total += num
return total
# Пример использования функции
N = int(input("Введите длину массива: "))
arr = []
for _ in range(N):
num = float(input("Введите число: "))
arr.append(num)
result = sum_fibonacci_numbers(arr)
print("Сумма чисел с порядковыми номерами, являющимися числами Фибоначчи:", result)
Этот код сначала определяет, является ли число Фибоначчи, затем перебирает элементы массива и складывает значения элементов, чей порядковый номер является числом Фибоначчи.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili