Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите решить задачу

Ответить
Настройки темы
C/C++ - Помогите решить задачу

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Нужно написать программу, которая будет возводить в степень больше 20ой числа большего max_int, проблема состоит в том что, входящее число может быть разное а я не могу заранее создать массив подходящий для результата, знаю что это как-то делается в куче, но как не знаю подскажите пожалуйста!!!

Отправлено: 20:54, 22-07-2009

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4461
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата Urann:
а я не могу заранее создать массив подходящий для результата »
Сделай размер 150. Кто мешает?
Цитата Urann:
знаю что это как-то делается в куче »
Длинная арифметика? (Интересно, есть асемблерная команда возведения в степень?)

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 22:08, 22-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Alan85

Старожил


Сообщения: 463
Благодарности: 91

Профиль | Отправить PM | Цитировать


http://alenacpp.blogspot.com/2007/03/blog-post_21.html - вот статейка по этому поводу
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:34, 22-07-2009 | #3


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


lxa85,
Цитата lxa85:
Длинная арифметика? »
Да оно самое.
Но сделать большой размер массива от проблемы не избавит, а может даже и новых прибавит в некоторых случаях, хотя это может я ещё чего-то недопонимаю.
А насчёт ассемблерной команды, я не знаю, мне нужно и хотелось бы на С++ написать, можете мне в этом помочь? если что могу маленькую заготовку для начала выложить!
Alan85, спасибо

Отправлено: 23:04, 22-07-2009 | #4


Аватара для lxa85

Необычный


Contributor


Сообщения: 4461
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата Urann:
можете мне в этом помочь? »
к сожаленью нет. Т.к. программирование сейчас шагнуло вперед, а т.к. оно не является ни моей работой, и очень слабым хобби, то я боюсь что я больше испорчу, нежели помогу.
2ое, отсутствие времени. Поэтому только так: общим направлением движения.

Отправлено: 23:22, 22-07-2009 | #5


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 23:44, 22-07-2009 | #6

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Цитата Urann:
Но алгоритм построения этого числа это же лакомый кусочек, я уже придумал как буду решать эту задачу, мне нужно только неисчерпаемый источник памяти куда я буду записывать ответ »
Террабайтный винт поможет. А вообще давай подсчитаем. Допустим максимальная степень - 128, максимальное число - 2^64, тогда понадобится количество байт log(2^64^128, 2^8) = 128*64/8 = 2^(3+7) = 1024 - в оперативке легко поместится.

Отправлено: 07:10, 23-07-2009 | #7


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


pva, я понимаю что в оперативке поместица
я вот только не знаю как мне в оперативку записывать данные, прямым вписанием данных по неизвестному адрессу может привести к удалению нужной информации или просто доступа к памяти не будет ну это понятно думаю не стоит объяснять, специально для таких вещей есть функции в языках программирования new или что то типа того но я не знаю как это делать ну не врубаюсь и сё тут
А под неисчерпаемым источником памяти я подразумеваю ту самую ОП, т.к. потому что если процессора хватит на то чтоб посчитать большие числа, то его может не хватить чтоб записать в память хотя что-то мне нутром подсказывает что тут вмешаются EMM386.exe и AIMEM.SYS но каким образом этого я тоже ещё пока не знаю

Отправлено: 12:12, 23-07-2009 | #8

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


а... разве не линейная модель памяти? если делаешь на с++, то есть замечательный шаблон vector<>, который берёт все заботы с памятью на себя. В паскале - динамический массив

Отправлено: 13:49, 23-07-2009 | #9


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо думаю что теперь мне стало всё понятно, как это делать!

Отправлено: 22:36, 23-07-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите решить задачу

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - [решено] Помогите решить задачу по С++ Spl1t Программирование и базы данных 301 21-12-2011 23:20
Разное - Помогите решить задачу в Excel Dgonny Программирование и базы данных 2 16-11-2009 04:11
C/C++ - Помогите решить задачу zdughi Программирование и базы данных 1 01-05-2009 06:03
помогите решить задачу snikers Программирование и базы данных 2 27-08-2004 01:57
помогите решить задачу Guest Программирование и базы данных 2 21-05-2004 11:23




 
Переход