1

Тема: Длинная арифметика.Умножение длинного на короткое

Мне не понятно что написано в этой строчке:

  long long cur = carry + a[i] * 1ll * b;  

а точнее между

 a[i] 

и

 b 

.
что значит

1ll

?

2

Re: Длинная арифметика.Умножение длинного на короткое

(long long)1

3

Re: Длинная арифметика.Умножение длинного на короткое

спасибо

4

Re: Длинная арифметика.Умножение длинного на короткое

У кого есть код длинного на длинное?

5

Re: Длинная арифметика.Умножение длинного на короткое

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 smile
Мне лень на Си++ писать!

6

Re: Длинная арифметика.Умножение длинного на короткое

Если число в виде string, то можно столбиком: