Помогите сделать пожалуйста!
Задан массив, заполненный последовательностью из 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;
}