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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2008, 17:20   #1
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию Большие числа

Мне нужно найти факториал ну типа X! где X переменная

Я организовываю цикл, все замечательно работает, но фактариал не больше 13. Дальше не хватает.
пользуюсь целочисленным типом.
Сначало был integer но этого оказалось очень мало я стал пользоваться cardinal но этого опять мало. Есть альтернатива?
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 27.02.2008, 17:27   #2
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Да, есть. Почему бы не использовать для ваших целей действительные типы, например extended?!
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 27.02.2008, 17:31   #3
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Лубышев Посмотреть сообщение
Есть альтернатива?
Есть! int64!
А если серьезно, то
1. Писать свою библиотеку для работы над большими числами, очень желательно на асме - там это проще реализуется.
2. Брать какую-нибудь готовую, скажем GMP или может еще какую присоветуют.
3. А смысл есть? 100! = 93326215443944152681699238856266700 49071596826438162146859296389521759 9993229915
60894146397615651828625369792082722 37582511852109168640000000000000000 00000000
B_N вне форума Ответить с цитированием
Старый 27.02.2008, 17:49   #4
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

короче, тема такая. в Edit пишется набор букв, ну по какому-нить событию происходит подсчет количества перестановок(комбинаций, возможных вариантов). Касяк в том, что если букв больше 13 получается какаято лажа. а если очень много, порядка 20 то вообще выдает ноль!
Да, кстати факториал только через цикл организовать можно? или есть встроенная функция?
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 27.02.2008, 17:53   #5
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Вычисляет около 150-200!
Код:
program tvafakt;
uses crt;
var
n:array[1..30000] of byte;
p,k,i,j:integer;
b:boolean;
procedure vich(t:integer);
label 1;
begin
for i:=1 to t do begin
for j:=1 to 30000 do if n[j]<>0 then n[j]:=n[j]*i;
for j:=1 to 30000 do
1:if n[j]>=10 then begin n[j]:=n[j]-10; n[j+1]:=n[j+1]+1; goto 1; end;
end;
end;
procedure clear;
begin
b:=false;
for i:=1 to 30000 do n[i]:=0;
n[1]:=1;
end;
begin
clrscr;
readln(k);
clear;
vich(k);
textcolor(yellow);
write(k,'!=');
textcolor(lightgreen);
for i:=30000 downto 1 do begin
if n[i]<>0 then begin if b=false then p:=i; b:=true;  end;
if b=true then write(n[i]);
end;
readkey;
end.
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 27.02.2008, 18:23   #6
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

спасибо, попробую.
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 27.02.2008, 22:57   #7
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Tayfun, зачем array[1..30000] of byte? Тем более по 1 цифре на элемент. Лучше array[1..30000] of integer и разрядность 1000000000.

И попробуй, до какого предела он будет вычислять.
Carbon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поменять большие буквы на маленькие и маленькие на большие в си++ Барби Помощь студентам 4 08.04.2008 01:25
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49
csv-файл большие числа nevadimka Microsoft Office Excel 1 14.03.2008 10:25
Большие комплексные числа xoz Общие вопросы Delphi 0 24.02.2008 03:12
Буквы большие и маленькие alekscooper Microsoft Office Excel 1 12.04.2007 23:12