Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.10.2014
Сообщений: 12

Продублировать элементы массива, являющиеся числами Фибоначчи

06.10.2014, 15:36. Показов 1202. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание : Продублировать элементы, являющиеся числами Фибоначчи;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.10.2014, 15:36
Ответы с готовыми решениями:

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

Вывести все элементы массива, являющиеся простыми числами
Добрый вечер,форумчане. Не могу разобраться с учебной задачей. Задача: Дан одномерный массив. Разработать функцию, выводящую на экран...

Удалить из массива целых чисел все элементы, являющиеся совершенными числами.
Удалить из массива целых чисел все элементы, являющиеся совершенными числа ми. #include <iostream> #include <iomanip> ...

8
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
06.10.2014, 15:59
Можно подробнее о задании, вот Вам в качестве подсказки разработанный мной класс для перевода в систему счисления Фибоначчи

Кликните здесь для просмотра всего текста

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
// файл "mi_fib.h"
// класс реализации взаимных преобразований систем счисления
// десятичная <=> Фибоначчи ( C++ ) файл: mi_fib.h
#include <string>
// определение типа uint
typedef unsigned __int32 uint; // беззнаковый целый
// пространство имён
using namespace std;
class mi_fib {
public:
  // конструктор
  mi_fib() {} ;
  // деструктор
  ~mi_fib() {} ;
  // ----------------------------------------------------------------
  // возвращает код числа в системе исчисления Фибоначчи:
  // n : 0 1 2 3 4 5  6  ...
  // Fibonacci : 1 2 3 5 8 13 21 ...
  uint IntToFib(uint vf) {
    // переменная результата
    uint res = 0;
    // если ноль сразу возвращаем результат
    if (vf == 0)
      return (res);
    // если больше максимально допустимого 
    // генерируем исключительную ситуацию
    if (vf > 5702886)
      throw;
    // массив чисел фибоначчи
    uint fib[] = {
      1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 
      1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 
      121393, 196418, 317811, 514229, 832040, 1346269, 
      2178309, 3524578} ;
    // формируем число в системе исчисления Фибоначчи
    for (int i = 31; i >= 0; i--) {
      if (vf == fib[i]) {
        res |= (0x01 << i);
        break;
      }
      if (vf > fib[i]) {
        vf -= fib[i];
        res |= (0x01 << i);
      }
    }
    // выходим
    return (res);
  }
  // ----------------------------------------------------------------
  // ----------------------------------------------------------------
  // преобразование из сист. счисления Фибоначчи в десятичную
  uint FibToInt(uint vi) {
    // переменная результата
    uint res = 0;
    // массив чисел Фибоначчи
    uint fib[] = {
      1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 
      1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 
      121393, 196418, 317811, 514229, 832040, 1346269, 
      2178309, 3524578} ;    for (int i = 0; i <= 31; i++) {
      res += fib[i] * (0x01 & (vi >> i));
    }
    return (res);
  }
  // ----------------------------------------------------------------
  // функция преобразования числа в строку (двоичный формат)
  string IntToStrBin(unsigned int a) {
    string bstr = "";
    do {
      (a % 2) ? bstr.insert(0, "1") : bstr.insert(0, "0");
      a /= 2;
    } while (a > 0);
    return bstr;
  }
};


И пример эксплуатации этого класса

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "mi_fib.h"
#include <string>
#include <iostream>
#include <stdlib.h>
// ---------------------------------------------------------
// пространство имён
using namespace std;
int main() {
  uint numb;
  mi_fib fibconv;
  cout<<
   "Введите число ограничивающее вывод таблицы соответствия:"
      <<endl;
  cin>>numb;
  cout<<"Dec\tFib"<<endl;
  for (uint i = 0; i <= numb; i++)
    cout<<i<<"\t"
        <<fibconv.IntToStrBin(fibconv.IntToFib(i))<<endl;
  system("pause"); // пауза (ОС Windows <stdlib.h>)
  return 0;
}
// ---------------------------------------------------------
1
0 / 0 / 0
Регистрация: 06.10.2014
Сообщений: 12
06.10.2014, 16:01  [ТС]
я сделала так:
1. Ввод массива с клавиатуры
2. Ввела числа Фибоначчи
3. сравнить их
4. продублировать
но на 3 пункте я уже час сижу, не знаю что не так, программа не сравнивает.
C++ (Qt)
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
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{int A[10],b=0,i,V[10];
 
for(int i=0;i<10;i++)
    
{cout<<"["<<i+1<<"]"<<"= ";
 
cin>>A[i];}
 
cout<<"mas: ";
 
for (int i=0;i<10;i++)
 
{cout<<A[i]<<" ";}
 
int F[10]={0, 1, 1, 2, 3, 5, 8, 13, 21, 34};
 
for (int i=0;i<10;i++)
 
{cout<<"\n chisla Fibonachchi: "<<F[i]<<endl;}
for (i=1;i<10;i++)
    
    if(A[i]=F[i])
            (V[i]=A[i]);
i=i+1;
 
 
 
cout<<V[i]<<endl;   
 
 
    return 0;
}
0
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
06.10.2014, 16:07
неправильно
Цитата Сообщение от varyfi Посмотреть сообщение
C++
1
2
if(A[i]=F[i])
   (V[i]=A[i]);
правильно так
C++
1
2
if(A[i]==F[i])
            (V[i]=A[i]);
0
0 / 0 / 0
Регистрация: 06.10.2014
Сообщений: 12
06.10.2014, 16:10  [ТС]
все равно не выходит а вообще правильно ли написана программа??
0
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
06.10.2014, 16:14
Попробуйте так

Цитата Сообщение от varyfi Посмотреть сообщение
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
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[]) {
  int A[10],b=0,i;
  int F[10]={0, 1, 1, 2, 3, 5, 8, 13, 21, 34};
 
  for(int i=0;i<10;i++) {
    cout<<"["<<i+1<<"]"<<"= ";
    cin>>A[i];
  }
  cout<<"mas: ";
  for (int i=0;i<10;i++) {
    cout<<A[i]<<" ";
  }
 
  for (int i=0;i<10;i++) {
    cout<<"\n chisla Fibonachchi: "<<F[i]<<endl;
  }
  for (i=1;i<10;i++) {
    if(A[i] == F[i]) {
      cout<<"Fibonacci : " <<A[i]<<" index : "<<i<<endl;
    }
  }
return 0;
}
0
0 / 0 / 0
Регистрация: 06.10.2014
Сообщений: 12
06.10.2014, 16:19  [ТС]
программа не сравнивает
0
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
06.10.2014, 16:34
Вот рабочая программа, всё сравнивает и выводит на печать:
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
#include <iostream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[]) {
  int A[10];
  int F[10]={0, 1, 2, 3, 5, 8, 13, 21, 34, 55};
 
  for(int i=0;i<10;i++) {
    cout<<"["<<i+1<<"]"<<"= ";
    cin>>A[i];
  }
  cout<<"mas: ";
  for (int i=0;i<10;i++) {
    cout<<A[i]<<" ";
  }
 
  cout<<"\n chisla Fibonachchi: ";
  for (int i=0;i<10;i++) {
    cout<<F[i]<<" ";
  }
  cout<<endl;
 
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      if(A[i] == F[j]) {
        cout<<"Fibonacci : " <<A[i]<<" index : "<<i<<endl;
      }
    }
  }
  system("pause");
  return 0;
}
Добавлено через 4 минуты
Только замечу на будущее, подход к программе предложенный Вами является не верным концептуально,
т.к. данная программа не позволяет сравнивать по критерию Фибоначчи или нет числа значение которых более 55.
1
0 / 0 / 0
Регистрация: 06.10.2014
Сообщений: 12
06.10.2014, 16:34  [ТС]
Спасибо огромное!!! вы меня спасли))
Только замечу на будущее, подход к программе предложенный Вами является не верным концептуально,
т.к. данная программа не позволяет сравнивать по критерию Фибоначчи или нет числа значение которых более 34.
Я просто не хотела формулой писать, а записывать все числа Фибоначчи не возможно.... так что ограничилась 10.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.10.2014, 16:34
Помогаю со студенческими работами здесь

Удалить из массива целых чисел все элементы, являющиеся простыми числами
Проверьте пожалуйста правильность написания программы и её работы по условию : Удалить из массива целых чисел все элементы, являющиеся...

Удалить из массива целых чисел все элементы, являющиеся простыми числами
Люди, для кого не составит большого труда, напишите пожалуйста программу по поставленной задаче : Удалить из массива целых чисел все...

Удалить из массива целых чисел все элементы, являющиеся совершенными числами.
нужно сделать сдвиг элементов массива а не затирание этих совершенных чисел пробелом,короче не знаю как помогите пожалуйста очень нужно

Удалить из массива целых чисел все элементы, являющиеся простыми числами
Помогите пожалуйста написать программу по условию : Удалить из массива целых чисел все элементы, являющиеся простыми числами. Заранее...

Удалить из массива целых чисел все элементы, являющиеся простыми числами
Помогите пожалуйста написать программу на С++ с условием : Удалить из массива целых чисел все элементы, являющиеся простыми числами. ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru