Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Одномерные массивы в с++, удаление всех чисел Фибоначчи 
V
    Опции темы
Neon325
  Дата 11.3.2012, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 3.3.2012

Репутация: нет
Всего: нет



нужна помощь в следующей программе...


Код

#include <vcl.h>
#include <iostream.h>
#include <stdlib.h>

char* Rus(const char* text);

int main()
{
  int a[100];
  int i,n;
  cout << Rus("Введите количество чисел:") << endl;
  cin >> n;  /*Вводим с клавиатуры кол-во чисел в цепочке*/
  for (i=0;i < n; i++) {   /*Описываем цикл от нуля до значения количества чисел*/
  if (i==0 || i==1) {   /*Если будет первое число или второе - тогда они будут равнятся единицам*/
  a[i]=1;
  }
  else {
  a[i]=a[i-1]+a[i-2]; /*Дальше число будет равняться сумме двух предыдущих*/
  }
cout << a[i] << " ";   /*Выводим массив на экран, разделяя пробелами*/
}
system("pause");
}
char bufRus[256];
char* Rus(const char* text)
{
CharToOem(text,bufRus);
return bufRus;
}


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

PM MAIL   Вверх
IBS
Дата 11.3.2012, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 29.7.2008
Где: Белоруссия

Репутация: нет
Всего: 6



Натуральное число N является числом Фибоначчи тогда и только тогда, когда (5N^2-4) или (5N^2+4)  является квадратом
т.е. если вещественная часть корня любого из этих выражений равна 0, то это число является числом фибоначи.
 Источник
PM MAIL   Вверх
Neon325
Дата 11.3.2012, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 3.3.2012

Репутация: нет
Всего: нет



Цитата(IBS @ 11.3.2012,  14:34)
Натуральное число N является числом Фибоначчи тогда и только тогда, когда (5N^2-4) или (5N^2+4)  является квадратом
т.е. если вещественная часть корня любого из этих выражений равна 0, то это число является числом фибоначи.
 Источник

я знаю что такое числа Фибоначчи, мне нужна  помощь в удалении...
PM MAIL   Вверх
IBS
Дата 11.3.2012, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 29.7.2008
Где: Белоруссия

Репутация: нет
Всего: 6



Цитата(Neon325 @  11.3.2012,  16:00 Найти цитируемый пост)
я знаю что такое числа Фибоначчи, мне нужна  помощь в удалении... 

Я это понял и написал

Цитата(IBS @  11.3.2012,  14:34 Найти цитируемый пост)
Натуральное число N является числом Фибоначчи тогда и только тогда, когда (5N^2-4) или (5N^2+4)  является квадратом

Это условие по которому ты определяешь является ли число числом фибоначи (как по мне это самое сложное).
После того как определил просто сдвигаешь элементы массива и переопределяешь переменную которая отвечает за длину массива (--n)
PM MAIL   Вверх
Neon325
Дата 11.3.2012, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 3.3.2012

Репутация: нет
Всего: нет



Цитата(IBS @ 11.3.2012,  16:51)

Это условие по которому ты определяешь является ли число числом фибоначи (как по мне это самое сложное).
После того как определил просто сдвигаешь элементы массива и переопределяешь переменную которая отвечает за длину массива (--n)

а как это записать на с++? 
PM MAIL   Вверх
IBS
Дата 11.3.2012, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 29.7.2008
Где: Белоруссия

Репутация: нет
Всего: 6



Первый курс что ли?
Сравнить я думаю ты сравнишь, если сам писал тот код, что в начале.
Ну а по сдвигу элементов массива:
Цикл от i до n-1
{
       a[i]=a[i+1];
}
n=n-1;

i - индекс найденного числа фибоначи
n - число элементов массива до удаления;
PM MAIL   Вверх
Neon325
  Дата 23.3.2012, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 3.3.2012

Репутация: нет
Всего: нет



Цитата(IBS @ 11.3.2012,  17:21)
Первый курс что ли?
Сравнить я думаю ты сравнишь, если сам писал тот код, что в начале.
Ну а по сдвигу элементов массива:
Цикл от i до n-1
{
       a[i]=a[i+1];
}
n=n-1;

i - индекс найденного числа фибоначи
n - число элементов массива до удаления;

вот программка написанная мной на выявление чисел фибоначчи и их удаление из массива...

Код

#include <vcl.h>
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>

char* Rus(const char* text);

int fibonacci (int, int [100]);

int main(){
 srand(time(NULL));

int a[100];
int n,i,j;
int fibonacci (int, int [100]);
cout <<Rus("Введите количество элементов: ") << endl;
    cin>>n;
cout << Rus("Исходный массив: ")<< endl;
    for (i=0;i<n;i++)
        {
        a[i]=rand()%30+5;
        rand()%100-rand()%100;
        cout << a[i]<<" ";
        }
fibonacci (n, a);
getch();
}

int fibonacci (int n, int a[100])
{
int q[100];
int max, g, b,i,j,c;
max=a[0];
    for (i=1;i<n;i++)
        {
        if (max<a[i])
         max=a[i];
        }
g=0;
b=1;
    for (i=0;b<=max;i++)
       {
       c=g+b;
       g=b;
       b=c;
       q[i]=b;
       }
cout << endl;
cout << endl;
cout << Rus("Ряд Фибоначчи: ")<< endl;
    for (j=0;j<i;j++)
      cout<< q[j] << " ";

         for (i=0;i<max;i++)
                for (j=0;j<n;j++)
                        if (q[i]==a[j])
                        {
                        for (b=j;b<n-1;b++)
                         a[b]=a[b+1];
                         n=n-1;
                         j--;
                        }
cout << endl;
cout << Rus("Новый массив: ")<< endl;
        for (i=0;i<n;i++)
        cout<<a[i]<<" ";

return 0;
}
char bufRus[256];
char* Rus(const char* text)
{
CharToOem(text,bufRus);
return bufRus;
}


M
JackYF
Пользуйся кнопкой "код" внимательнее.


   не подскажите как записать этот все как параметры функции?-т.е оформить в виде функций?
PM MAIL   Вверх
IBS
Дата 25.3.2012, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 29.7.2008
Где: Белоруссия

Репутация: нет
Всего: 6



Цитата(Neon325 @  23.3.2012,  19:35 Найти цитируемый пост)
 не подскажите как записать этот все как параметры функции?-т.е оформить в виде функций? 

Честно-говоря не понял, о чем вы ) там вроде и так есть какие-то функции.... Непонятно =)
НО меня беспокоит другое: походу вы, чтобы определить число на принадлежность к ряду Фибоначчи сравниваете его со всеми значениями заранее определенного ряда. Это так? Если так, то вы меня огорчаете=)
1. Это очень ограниченный подход, т.к. все числа Фибоначчи вы не переберете
2. Он Сложнее и длиннее того, что я предлагал ранее:
Цитата(IBS @  11.3.2012,  14:34 Найти цитируемый пост)
Натуральное число N является числом Фибоначчи тогда и только тогда, когда (5N^2-4) или (5N^2+4)  является квадратом
т.е. если вещественная часть корня любого из этих выражений равна 0, то это число является числом фибоначи.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.