//длинная арифметика
begin
var a := '123456789123456789';//ReadString();
var b := '123456789123456789123';//...
var l := Abs(a.Length - b.Length);
var source := l*'0';
if a.Length > b.Length then
insert(source, b, 1)
else
insert(source, a, 1);
var s := '';
var mem := 0;
for var i:=a.Length downto 1 do
begin
var c := a[i].ToDigit + b[i].ToDigit + mem;
mem := c div 10;
insert((c mod 10).ToString, s, 1)
end;
if (mem > 0) then insert('1', s, 1);
s.Println;
end.
Поделитесь своими знаниями, ответьте на вопрос:
Вопрос чтобы ответ был роутер
var a,b,c,d:real;
c1, c2, z1, z2:real;
begin
write('Введи числитель первой дроби: '); read(a);
write('Введи знаменатель первой дроби: '); read(b);
write('Введи числитель второй дроби: '); read(c);
write('Введи знаменатель второй дроби: '); read(d);
write(a + ' / ' + b + ' + ' + c + ' / ' + d + ' = ');
if(b = d) then begin
c1 := a + c;
write(c1 + ' / ' + b);
End else Begin
z1 := b * d;
c1 := (z1 / b) * a;
c2 := (z1 / d) * c;
z2 := c1 + c2;
write(z2 + ' / ' + z1);
end;
end.