ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

16.12.2007, 16:59
|
|
Участник форума
Регистрация: 09.12.2006
Сообщений: 135
Провел на форуме: 426226
Репутация:
726
|
|
так должно работать:
Код:
program Snak3;
uses Crt;
.....
c:='1'+c;
end;
end;
function IntToStr(a: Integer): string;
var s: string;
begin
Str(a, s);
IntToStr := s;
end;
begin
write('Enter n');
......
...... um(s,IntToStr(k),s);
|
|
|

16.12.2007, 17:08
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме: 409147
Репутация:
33
|
|
Всё, задача работоспособна....
Спасибо: Xerg, Sn@k3, .Slip
Вот собственно готовая задача
, считает 1!+2!+3!+..+n!
Код:
program Snak3;
uses crt;
var ss,s:string;
n,i,k:longint;
procedure um(a,b:string;var c:string);
var n,k,i,j,x,p:integer;
d:string;
begin
n:=length(s);
k:=length(b);
c:=''; d:=''; p:=0;
for i:=1 to n+k do d:=d+'0';
for j:=k downto 1 do
begin
p:=0;
for i:=n downto 1 do begin
x:=(ord(a[i])-ord('0'))*(ord(b[j])-ord('0'))+p+ord(d[i+j])-ord('0');
d[i+j]:=chr((x mod 10)+ord('0'));
p:=x div 10;
end;
d[j]:=chr(ord(d[j])+p);
end;
i:=1;
n:=length(d);
while (d[i]='0') and (i<n) do inc(i);
for k:=i to n do c:=c+d[k];
end;
procedure sum(a,b:string;var c:string);
var x,i,p,n,k:integer;
begin
n:=length(a);
k:=length(b);
p:=0;
c:='';
if n<k then begin
for i:=n+1 to k do
a:='0'+a;
end else
begin
for i:=k+1 to n do
b:='0'+b; end;
n:=length(a);
for i:=n downto 1 do
begin
x:=ord(a[i])-ord('0')+ord(b[i])-ord('0')+p;
c:=chr((x mod 10)+ord('0'))+c;
p:=x div 10;
end;
if p<>0 then
begin
inc(n);
c:='1'+c;
end;
end;
function IntToStr(a: Integer): string;
var s: string;
begin
Str(a, s);
IntToStr := s;
end;
begin
write('Enter n');
readln(n);
ss:='';
for i:=1 to n do begin
s:='1';
for k:=1 to i do um(s,IntToStr(k),s);
sum(ss,s,ss);
end;
writeln('1!+2!+3!+..+n!=',ss);
read(n);
end.
Последний раз редактировалось rubik-nerubik; 16.12.2007 в 17:55..
|
|
|

16.12.2007, 17:10
|
|
Познавший АНТИЧАТ
Регистрация: 13.04.2006
Сообщений: 1,738
Провел на форуме: 5151669
Репутация:
1198
|
|
хех мой пример разобрать не можете)))))))) я бы помог извини человек нет времени у самого. вон те чел поможет.
|
|
|

16.12.2007, 18:27
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме: 409147
Репутация:
33
|
|
Так, теперь осталось две беды: блок-схема к той:#12
и к #10 переделать вроде....
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|