0 / 0 / 1
Регистрация: 06.08.2015
Сообщений: 85
1

Вывести элементы массива, порядковые номера которых являются числами Фибоначчи

23.08.2015, 12:41. Показов 2445. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано целочисленный массив. Вывести те его элементы, порядковые номера которых являются числами Фибоначчи.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <ctime>
using namespace std;
void input(int Arr[],int size);
int fibonachi(int Arr[],int size);
void output(int Arr[],int size);
void main()
{
    srand(time(0));
const int size=20;
    int Arr[size]={0};
    input(Arr,size);
    fibonachi(Arr,size);
    output(Arr,size);
}
 void input(int Arr[],int size)
{
    for(int i=0; i<size; i++)
    {
        Arr[i]=rand()%21;
    }
}
 int fibonachi(int Arr[],int size)
 {
    for(int i=1; i<size; i++)
    {
        if (Arr[i]>=0)
    {
       if (Arr[i]==0) return 0;
       if (Arr[i]==1) return 1;
       else if  ( Arr[i]==Arr[i-1] +Arr[i - 2]) return Arr[i];
    }
   }
 }
 void output(int Arr[],int size)
 {
     for(int j=0;j<size;j++)
     {
         cout<<Arr[j]<<"\n";
     }
 }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2015, 12:41
Ответы с готовыми решениями:

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

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

Вычислить сумму чисел последовательности, порядковые номера которых являются числами Фибоначчи
Вычислить сумму чисел последовательности, порядковые номера которых являются числами Фибоначчи...

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

9
12 / 12 / 8
Регистрация: 12.08.2015
Сообщений: 55
23.08.2015, 14:38 2
Вот держи тут всё просто и понятно, можно было бы через класс но тут на понимаение.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
void go_fib(int * arr, int N, int prev, int cur)
{                           
    if (N > cur)  
    {
        if (cur != prev) {std::cout << arr[cur] << " "; }
        go_fib(arr, N, cur , prev + cur);
    }
}
 
void with_arr(char command, int arr[], unsigned int N)
{
    for(unsigned int i = 0; i < N; ++i)
    {
        if (command == 'p') {arr[i]=rand()%21;;}
        if (command == 's') {cout << i <<  '\t' << arr[i]<<'\n';}
    }
        if (command == 'f') { go_fib(arr, N, 1, 0);}
}
 
int main()
{
    unsigned short N;
    cout << "Enter size of array : " ;
    cin >> N;
    int *arr = new int[N];
    with_arr('p', arr, N);
    with_arr('s', arr, N);
    with_arr('f', arr, N);
}
1
0 / 0 / 1
Регистрация: 06.08.2015
Сообщений: 85
23.08.2015, 14:45  [ТС] 3
я не понимаю половины, потому что я 3 месяц учусь на программировании, и не понимаю что такое класс, но веривно спасибо!!!
0
12 / 12 / 8
Регистрация: 12.08.2015
Сообщений: 55
23.08.2015, 14:51 4
Цитата Сообщение от Ayrmax Посмотреть сообщение
я не понимаю половины, потому что я 3 месяц учусь на программировании, и не понимаю что такое класс, но веривно спасибо!!!
Я тоже не академик)) Пиши всё всё что не понятно, вместе разберёмся.
0
0 / 0 / 1
Регистрация: 06.08.2015
Сообщений: 85
24.08.2015, 10:56  [ТС] 5
помоги разобраться что такое (command == 'f') (р, s) и откуда они взялись,потому не понимаю как это работает. и что значит int * arr? спасибо!
0
12 / 12 / 8
Регистрация: 12.08.2015
Сообщений: 55
24.08.2015, 12:18 6
Лучший ответ Сообщение было отмечено Ayrmax как решение

Решение

Ayrmax,
Комманд переменная типа чар которая может хранить в себе один символ http://ci-plus-plus-snachala.ru/?p=18 тут прочитай, так вот что бы не писать 3 практически одинаковых функции ( void with_arr(char command, int arr[], unsigned int N) ) которые бы одинаково обходили массив от начала до конца for(unsigned int i = 0; i < N; ++i) , только бы отличались тем , что я ввожу либо вывожу , либо проверяю. И я решил передать в функцию еще один параметр который бы решал что именно делать, если я хочу зарандомить туда with_arr('p', arr, N); ( push ) пишу 'p' , если вывести with_arr('s', arr, N); пишу 's' и т.д а (command == 'f') просто проверяет какой символ и выбирает нужную инструкцию. (Может я замудрил но мне так проще и писать меньше) Вот без комманды.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
void go_fib(int * arr, int N, int prev, int cur)
{                           
    if (N > cur)  
    {
        if (cur != prev) {std::cout << arr[cur] << " "; }
        go_fib(arr, N, cur , prev + cur);
    }
}
 
void push_arr(int arr[], unsigned int N)
{
    for(unsigned int i = 0; i < N; ++i)
    {
        arr[i]=rand()%21;
    }
}
 
void show_arr(int arr[], unsigned int N)
{
    for(unsigned int i = 0; i < N; ++i)
    {
         cout << i <<  '\t' << arr[i]<<'\n';
    }
}
 
int main()
{
    unsigned short N;
    cout << "Enter size of array : " ;
    cin >> N;
    int *arr = new int[N];
    push_arr(arr, N);
    show_arr(arr, N);
    go_fib(arr, N, 1, 0);
}
Цитата Сообщение от Ayrmax Посмотреть сообщение
и что значит int * arr?
Это указатель на массив http://cpp.com.ru/kr_cbook/ch5kr.html тут почитай.
Мне нужно было только прочитать некоторые элементы массива, и не было смысла передавать его туда полностью.
1
Эксперт С++
4984 / 3091 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
24.08.2015, 12:38 7
Цитата Сообщение от Evgenii Kushner Посмотреть сообщение
Это указатель на массив
Это просто указатель на элемент(ы) типа int.
1
0 / 0 / 1
Регистрация: 06.08.2015
Сообщений: 85
24.08.2015, 12:49  [ТС] 8
спасибо друг, ты мне очень помог! может глянешь на еще одну завдачку

Пусть даны две матрицы размером nxm и mxk. Сформировать третью матрицу nxk как результат умножения первой второго.
a00 a01 a02 * b00 b01 b02 b03 =
a10 a11 a12 b10 b11 b12 b13
******************************** b20 b21 b22 b23

=
a00 * b00 + a01 * b10 + a02 * b20 a00 * b01 + a01 * b11 + a02 * b21 a00 * b02 + a01 * b12 + a02 * b22 a00 * b03 + a01 * b13 + a02 * b23
a10 * b00 + a11 * b10 + a12 * b20 a10 * b01 + a11 * b11 + a12 * b21 a10 * b02 + a11 * b12 + a12 * b22 a10 * b03 + a11 * b13 + a12 * b23
0
Эксперт С++
4984 / 3091 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
24.08.2015, 12:55 9
Цитата Сообщение от Ayrmax Посмотреть сообщение
может глянешь на еще одну завдачку
Другая задача - другая тема. Начинай с этого.
0
12 / 12 / 8
Регистрация: 12.08.2015
Сообщений: 55
24.08.2015, 13:16 10
Ayrmax, Эх, пора нучиться пользоваться гуглом
Вот нашел и подправил за пару минут уже готовый пример, лови.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <stdio.h>
#define N 4
 
int main()
{
    int a[N][N];
    int b[N][N];
    int c[N][N];
    int i,j;
    int m;
//      матрица 1
    printf("введите матрицу%ix%i\n",N,N);
    for (i=0; i<N; i++)
    {
        printf("элем %i-й строки:\n",i+1);
        for (j=0; j<N; j++)
        {
        scanf("%i", &a[i][j]);
        }
    }
    printf("\nПервая матрица\n");
    for(i=0; i<N; i++)
        {
        for(j=0; j<N; j++)
        {
            printf("%3i",a[i][j]);
        }
        printf("\n");
    }
//      матрица 2
    printf("введите матрицу%ix%i\n",N,N);
    for (j=0; j<N; j++)
        {
        printf("элем %i-й строки:\n",j+1);
            for (i=0; i<N; i++)
            {
                scanf("%i", &b[j][i]);
            }
        }
    printf("\nВторая матрица\n");
    for(j=0; j<N; j++)
    {
        for(i=0; i<N; i++)
        {
            printf("%3i",b[j][i]);
        }
        printf("\n");
    }   
//      умножение матриц
    for (i=0; i<N; i++)
    for (j=0; j<N; j++)
    c[i][j]=0;
 
    printf("\nУмножение матриц\n");
    for(i=0;i<N; i++)
    {
        for(j=0; j<N; j++)
        {
            for(m=0; m<N; m++)
            {
                c[i][j]+=a[i][m]*b[m][j];
            }
        }
    }
 
    printf("\nИтоговая матрица\n");
    for(i=0; i<N; i++)
        {
        for(j=0; j<N; j++)
            {
                printf("%3i",c[i][j]);
            }
        printf("\n");
        }
}
http://aippy2.blogspot.com/2011/10/33-c-c.html вроде не форум
0
24.08.2015, 13:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.08.2015, 13:16
Помогаю со студенческими работами здесь

Вывести на экран элементы, порядковые номера которых являются нечетными.
Создать массив из 30 целых чисел случайным образом. Вывести на экран элементы, порядковые номера...

Вычислить сумму чисел, порядковые номера которых являются простыми числами.
Нужно еще решение Если есть возможность решите. 24. Задана последовательность N вещественных...

В списке найти максимальный среди элементов, номера которых являются числами Фибоначчи
Последовательность натуральных чисел разместить в первом динамическом списке по принципу стека, и...

Распечатать те элементы порядковые номера которых - числа Фибоначчи; определить количество перемен знаков
в заданном целочисленном массиве распечатать те элементы,порядковые номера которых - числа...

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru