ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 13.12.2007, 19:34
HulkRus
Новичок
Регистрация: 06.12.2007
Сообщений: 17
Провел на форуме:
150294

Репутация: 31
По умолчанию

Lex, для больших то чисел то да. прав. Но еще важен и сам алгоритм, например числа Фиббоначи нужно считать не через f<-f(x-1)+f(x-2) и не через 0.5(-1+sqrt(5)), а через матрицы!
rubik-nerubik, да. Она считает сумму факториалов (1!+2!+3!...), ты только тип возьми побольше

Последний раз редактировалось HulkRus; 13.12.2007 в 19:39..
 
Ответить с цитированием

  #12  
Старый 13.12.2007, 20:05
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме:
535407

Репутация: 57
Отправить сообщение для ~Lexx~ с помощью ICQ
По умолчанию

Цитата:
Сообщение от rubik-nerubik  
~Lexx~
флудишь больше)))

HulkRus этот пример точно по моему заданию? не только факториал??
Составить программу для вычисления точного значения суммы 1!+2!+3!+..+n! при n>10.
?????
Прости - я тебе написал именно то что ты просил - и я считаю , что если тебе не требуеться вычисление факториалов типа 1000! или больше - тебе мой алгоритм подойдет - и будет лучшим, что можно предложить из простого. А те алгоритмы которые по 10 раз вычисляют одно и то же - даже не имеют правол на существование.

У халка - просто процедура вычисления факториала - которая хороша, когда тебе нужн опоститать ТОЛЬКО факториал и только ОДИН раз.

То HulkRUS

Я не совсмем понял что ты сказал... Если ты утверждаешь что в вычислительных алгоритмах рекурсия это хорошо - почитай что-нибудь об исследовани операций. А уж по поводу чисел фибоначи - это вобще для чего было сказано? Чтобы показать, что ты знаешь что это такое?

ПЫ извиняюсь за флуд.
 
Ответить с цитированием

  #13  
Старый 13.12.2007, 20:25
Chrek625
Участник форума
Регистрация: 06.06.2006
Сообщений: 163
Провел на форуме:
1025198

Репутация: 11
По умолчанию

rubik-nerubik
ну ты извращенец
У тебя кучу ошибок в коде и вообще юзай HELP.
И вопросик а куда ты там собираешся выводить данные так ака я не увидел там
assign (output,'output.txt');
rewrite (output);
оооо эо ужас.....
 
Ответить с цитированием

  #14  
Старый 13.12.2007, 20:34
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме:
409147

Репутация: 33
По умолчанию

Chrek625 предлагай альтернативу а не обсирай =\ так и я могу написать, типа гавно, покажи свой в таком случае =\

~Lexx~ ещё раз говорю, мне ненадо просто посчитать факториал, как ты понимаешь, поставлена задача посчитать именно по образцу, а не так =\
 
Ответить с цитированием

  #15  
Старый 13.12.2007, 20:38
Chrek625
Участник форума
Регистрация: 06.06.2006
Сообщений: 163
Провел на форуме:
1025198

Репутация: 11
По умолчанию

и кстати если ты собираешся считать фаториалы то врятли тебе тут поможет integer скорее тебе понадобится longint.
 
Ответить с цитированием

  #16  
Старый 13.12.2007, 20:46
Chrek625
Участник форума
Регистрация: 06.06.2006
Сообщений: 163
Провел на форуме:
1025198

Репутация: 11
По умолчанию

Слушай выложи сюда то что у тебя в файле matrix.txt
попробую тебе помочь...
 
Ответить с цитированием

  #17  
Старый 13.12.2007, 21:12
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме:
535407

Репутация: 57
Отправить сообщение для ~Lexx~ с помощью ICQ
По умолчанию

Цитата:
Сообщение от ~Lexx~  
Uses crt;

var i,n:integer;
fact,sum:extended;

Begin ClrScr;
Writeln('vvedite chislo');
Readln(n);
sum:=0;
fact:=1;
for i:=1 to n do begin
fact:=fact*i;
sum:=sum+fact;
end;

writeln(sum);
readln;
end.
то rubik-nerubik ой блин... ты когда-нить читаешь чужие посты? Вот мое второе сообщение в этой теме - это твое решение перед Алгоритмом объяви переменные каk longint. и все заработает. Ты хоть читаешь чужие коды или просто- чем больше написано, тем круче алгоритм? Халк тебе предложил рекурсивную функцию по нахождению факториала - я тебе написал решение всей твоей задачи...

Последний раз редактировалось ~Lexx~; 14.12.2007 в 23:11..
 
Ответить с цитированием

  #18  
Старый 13.12.2007, 21:20
HulkRus
Новичок
Регистрация: 06.12.2007
Сообщений: 17
Провел на форуме:
150294

Репутация: 31
По умолчанию

Нет, я предложил тоже решение задачи. Ведь у меня находит не факториал, а их сумму (1!+2!+3!...). Lexx, мой алгоритм при больших числах некорректен, но сама идейка-то
1!+2!+3!+4!+5! = (1+2(1+3(1+4(1+5)))), в стек загоняет то, что в скобках.
 
Ответить с цитированием

  #19  
Старый 13.12.2007, 23:13
Be0wuIf
Новичок
Регистрация: 18.05.2007
Сообщений: 8
Провел на форуме:
46828

Репутация: 3
Отправить сообщение для Be0wuIf с помощью ICQ
По умолчанию

вот попробуй мою прогу

program fak;

var a,fak,prob:array [1..10000] of integer;
i,m,n,m1,k,j:longint;
s,s1:string;

Procedure Mnog(x,y:array of integer);
var k,l:longint;
begin
fillchar(prob,sizeof(prob),0);
for k:=1 to m1 do
for l:=1 to m do
prob[k-1+l]:=prob[k-1+l]+fak[l]*a[k];
k:=1;
while k<=m do
begin
if ((prob[k] div 10) > 0)and(k=m) then inc(m);
prob[k+1]:=prob[k+1]+(prob[k] div 10);
s:='';
str(prob[k],S);
prob[k]:=ord(s[length(s)])-ord('0');
inc(k);
end;
fak:=prob;
end;

begin
{ TODO -oUser -cConsole Main : Insert code here }
assign(input,'input.txt'); reset(input);
assign(output,'ouptupt.txt'); rewrite(output);
readln(n);

str(n,S); k:=1;
for j:=length(s) downto 1 do
begin
fak[length(s)+1-j]:=ord(s[j])-ord('0');
end;
m:=length(s);

for i:=n-1 downto 2 do
begin
s1:='';
str(i,S1); k:=1;
for j:=length(s1) downto 1 do
begin
a[length(s1)+1-j]:=ord(s1[j])-ord('0');
end;
m1:=length(s1);
mnog(fak,a);
end;
for i:=m downto 1 do
write(fak[i]); writeln;

close(input); close(output);
end.

З.Ы. по идее то что ты и хотел считает до 1000 (мона и больше)

Последний раз редактировалось Be0wuIf; 13.12.2007 в 23:55..
 
Ответить с цитированием

  #20  
Старый 14.12.2007, 12:31
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме:
535407

Репутация: 57
Отправить сообщение для ~Lexx~ с помощью ICQ
По умолчанию

а зочем сдесь моссивы интежеров? Не проще ли создать байт? И почему нету отдельных бъектов? Если уж делоть, так делоть до конца.... (Повыступаю в роли критика))) )
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ