| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++]Функции+указатели |
| Автор: Palladin 21.1.2007, 23:01 | ||
| То же самой, помогите разобратся с этими указателями, вот задание: Посчитать 2^500 и 1!+2!+…+100! вот решение по обычному:
Хелп |
| Автор: Romikgy 21.1.2007, 23:09 | ||
в инт явно не влезет , может только в int64
неправильно |
| Автор: Palladin 21.1.2007, 23:13 | ||
| Ну лана вот изменил, с указателями подсаби плз
|
| Автор: Romikgy 21.1.2007, 23:26 | ||||
у мя при факториале 22
шкалить разрядную сетку Добавлено @ 23:33
что то типа такого ты хотел? |
| Автор: Palladin 22.1.2007, 00:55 |
| нет надо сделать передачу из функции в виде указателей ,както так |
| Автор: Romikgy 22.1.2007, 01:02 |
ты понял ? я нет , кого передать из ф_ции в виде указателей? |
| Автор: Romikgy 22.1.2007, 01:13 |
в курсе |
| Автор: Palladin 22.1.2007, 01:18 |
| гы, ну челы я незнаю конечно, может и так, но у мя почемуто намашине разницы нет int или long int всеровно выводит 9-и значное число и все, но не в этом дело, короче задача мол сделать через функции эти задачи, но сделать несколько иначе, короче вот return возвращает из двух функции значения, вот это надо сделать через указатели, короче посчитать, потом передать адрес и в мейне уже взять число, конечно если это возможно, анм препод дал такое задание, а препод сам оч "много" знает |
| Автор: Pete 22.1.2007, 01:29 |
Все зависит от системы. Гарантируется только, что sizeof(int) <= sizeof(long int) <= sizeof(long long int). По крайней мере, в данном вопросе твой препод дал вполне разумный совет, а разобраться до конца логично поручил тебе. Так как для таких больших чисел нет встроенного типа, придется реализовывать его самому. Самый простой вариант -- хранить в массиве char'ов цифры данного числа. Самому придется писать функцию (или перегруженный оператор) длинного умножения. Эта проблема обсуждалась несколько раз на форуме, в частности есть очень неплохой исходник из книги для подготовки к олимпиадам по программированию. |
| Автор: Palladin 22.1.2007, 01:34 | ||||
| Нет Пётр, может такое и можно задать, но он точно не мог допустим вот код сделал Ромикью
что он делает Добавлено @ 01:36 Я так понял эт адреса выдала программа Добавлено @ 01:40 Короч сорри за оффтоп, вот я так передалал, вроде числа прога показывает, правильно так Я короч подумал что твой вариант адреса дает, ну и я сделал чтоб показывала прога значения по этим адресам, объясни че за функция sprintf Добавлено @ 01:41
|
| Автор: Pete 22.1.2007, 01:44 | ||
Она здесь вообще не нужна, не парься. Просто он в конце адрес печатает. Добавлено @ 01:49 Если ты так уверен в простоте задания, то...
Ничего. Не увеличивая, НЕЛЬЗЯ. Правда, я совсем не знаю STL полюса, может, там что-то есть, хотя вряд ли. Иначе не писали бы gmp для с++. Последнее, что приходит мне в голову: он мог давать эту часть (реализацию длинной арифметики) в течение семестра. Ну, еще бывают преподы, которых можно сильно разозлить... |
| Автор: Palladin 22.1.2007, 01:53 |
| Нет я думаю что ты прав, что именно с арифметикой, но дело в том, что это обычная лаба, на которую отводится полтара часа, мол закрепление знаний о функциях, задания взяты с Минского универа, поэтому-то она такая сложная |
| Автор: Pete 22.1.2007, 01:57 |
| Тебе лучше знать, что за задание и кто виноват.. Кроме как через длинную арифметику, я не знаю, как решить такую задачу на сях. |
| Автор: Palladin 22.1.2007, 02:02 |
| А насколько сложна такая задача если её делать через арифметику, я то точно сам не сделаю, просто если не сложно сделай плз с коментами, все одно знать больше буду |
| Автор: Pete 22.1.2007, 02:26 |
| Посмотри http://forum.vingrad.ru/topic-125077.html тему. Вопрос уже поднимался. |
| Автор: Romikgy 22.1.2007, 10:24 | ||||
Ответ
компилировал в gcc, в прикрепл. файле класс для работы с большими числами |
| Автор: Palladin 23.1.2007, 01:23 |
| фигассе, сенкс за труд, но как я и говорил препод об это даже и не думал, я здал то что было на 10 баллов |
| Автор: Romikgy 23.1.2007, 09:45 |
ниче мне это не говорит , это сколько ? |
| Автор: Palladin 23.1.2007, 16:46 |
| это по 5 бальной системе 5:))) или как у мя по 10-и бально 10, т.е. самый высокий бал |
| Автор: Romikgy 23.1.2007, 16:56 |
| ну тогда мои поздравления со здачей |