Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2013, 09:51   #1
grishtyrev
 
Аватар для grishtyrev
 
Регистрация: 15.11.2013
Сообщений: 3
По умолчанию C#. Обработка одномерных массивов (векторов).

Помогите пожалуйста в написании данной программы.

Дан одномерный массив А(N). Составить программу на языке СИ. Если среди элементов массива есть хотя бы одно число Фибоначчи, то вектор инвертировать.
grishtyrev вне форума Ответить с цитированием
Старый 15.11.2013, 10:19   #2
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Цитата:
хотя бы одно число Фибоначчи
все верно написано?
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Старый 15.11.2013, 10:22   #3
grishtyrev
 
Аватар для grishtyrev
 
Регистрация: 15.11.2013
Сообщений: 3
По умолчанию

Цитата:
Сообщение от SaLoKiN Посмотреть сообщение
все верно написано?
Да, все верно!
Код:
Если среди элементов массива есть хотя бы одно число Фибоначчи, то вектор инвертировать.
grishtyrev вне форума Ответить с цитированием
Старый 15.11.2013, 10:24   #4
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

а все, понял чего хотят =)
напишите как вывести ряд фиббоначи програмно и задача почти решена
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 15.11.2013 в 10:27.
SaLoKiN вне форума Ответить с цитированием
Старый 15.11.2013, 10:33   #5
grishtyrev
 
Аватар для grishtyrev
 
Регистрация: 15.11.2013
Сообщений: 3
По умолчанию

Цитата:
Сообщение от SaLoKiN Посмотреть сообщение
а все, понял чего хотят =)
напишите как вывести ряд фиббоначи програмно и задача почти решена
Код:
#include <iostream.h>
#include <conio.h>
int main () {
int a=1, b=1, c=1;
while (b<=1000) {         //тело цикла while с условием, до какого числа выводить ряд
cout <<”c= ” << c <<endl;
c=a+b;
a=b;
b=c;

}
getch ();
return 0;
}
grishtyrev вне форума Ответить с цитированием
Старый 15.11.2013, 10:45   #6
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

ну вот!
теперь чтобы не генерить непонятное количество чисел фиббоначи предлагаю найти максимальный элемент массива А,и генерить числа до него.

после этого,можно запускать генерирование числе фиббоначи и проверять каждое с элементами массива.
ну и дальше думаю понятно чего нужно сделать ;-)
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Старый 15.11.2013, 13:01   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
теперь чтобы не генерить непонятное количество чисел фиббоначи предлагаю найти максимальный элемент массива А,и генерить числа до него.
ну, ещё, как вариант - написать функцию, в которой генерить числа фиббоначи для каждого элемента массива, пока число c не совпало с элементом массива (c == mas[i]) или пока мы не вышли за пределы данного числа (while (b<=mas[i] )
не очень оптимально, но для небольших массивов вполне себе прокатит!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.11.2013, 13:49   #8
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

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

UPD ваш вариант кажется мне более рациональным
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 15.11.2013 в 13:52.
SaLoKiN вне форума Ответить с цитированием
Старый 15.11.2013, 15:32   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
UPD ваш вариант кажется мне более рациональным
не-не.. не факт. Именно, что всё зависит от размера массива и разрядности чисел в нём.

ещё можно придумать метод, который
1) быстро (например, методом половинного поиска) ищет указанное значение в динамической структуре, в которой хранятся все числа Фибоначчи и возвращает true/false (найдено/не найдено)
2) одновременно, этот же метод вызывает добавление всех чисел Фибоначчи до переданного в него значения, если их (этих чисел) ещё нет в структуре.
Думаю, что это будет самый эффективный способ с точки зрения быстродействия (но отнюдь не эффективный в плане использования памяти).
короче - "дьявол в деталях!"

p.s. а в данном случае, я бы считал числа Фибоначчи для каждого числа массива (пост #7) и не морочил себе голову до тех пор, пока не прозвучат дополнительные условия или требования или претензии к работе алгоритма. Для учебной задачи вполне себе простой метод!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка одномерных массивов lolwto Паскаль, Turbo Pascal, PascalABC.NET 9 03.12.2012 23:14
ООП: Составить описание класса для определения одномерных массивов целых цисел (векторов) Kuzu Паскаль, Turbo Pascal, PascalABC.NET 0 18.10.2012 00:23
обработка одномерных массивов С++ L3to Помощь студентам 4 23.06.2011 18:58
обработка одномерных массивов!!!!!! Mr0max Паскаль, Turbo Pascal, PascalABC.NET 4 23.05.2011 16:58