Тема: Длинная арифметика.Умножение длинного на короткое
Мне не понятно что написано в этой строчке:
long long cur = carry + a[i] * 1ll * b;
а точнее между
a[i]
и
b
.
что значит
1ll
?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
MAXimal :: φορυμ » Algo » Длинная арифметика.Умножение длинного на короткое
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Мне не понятно что написано в этой строчке:
long long cur = carry + a[i] * 1ll * b;
а точнее между
a[i]
и
b
.
что значит
1ll
?
(long long)1
спасибо
У кого есть код длинного на длинное?
type Tlong=record n:longint;
a:array[0..100]of longint;
end;
procedure multLong(var c:Tlong; a,b:Tlong);
var i,j:longint;
begin
fillchar(c,sizeof(c),0);
c.n:=a.n+b.n+2;
for i:=1 to a.n do
for j:=1 to b.n do
inc(c.a[i+j-1],a.a[i]*b.a[j]);
for i:=1 to c.n-1 do
if(c.a[i]>9)then begin
inc(c.a[i+1],c.a[i] div 10);
c.a[i]:=c.a[i] mod 10;
end;
while(c.n>1)and(c.a[c.n]=0)do dec(c.n);
end;
Вот реализация на Pascal
Мне лень на Си++ писать!
Если число в виде string, то можно столбиком:
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
MAXimal :: φορυμ » Algo » Длинная арифметика.Умножение длинного на короткое