В n будем хранить количество чисел, которые ещё нужно вывести. a и b - предыдущее и текущее числа Фибоначчи. По определению, следующее число Фибоначчи равно сумме двух предыдущих, так что новое значение b будет a + b. Чтобы не заводить новую временную переменную, новое значение a можно будет найти, вычитая из нового b старое a, получится (a + b) - a = b.
Код процедуры:
procedure print_fib(n: integer);
var a, b, t: integer;
begin
a := 0;
b := 1;
while n > 0 do
begin
write(b, ' ');
b := a + b;
a := b - a;
n := n - 1;
end;
end;
Пример основной программы:
begin
print_fib(10)
end.
Вывод:
1 1 2 3 5 8 13 21 34 55
Первая
var n,x:integer;
begin
readln(n);
while n <> 0 do begin
x:=x + n mod 10;
n:=n div 10;
end;
if(x mod 2 = 0) then
writeln('true')
else
writeln('false');
end.
Вторая
var x,z,s:integer;
begin
readln(x);
if (x > 99) and (x < 1000) then begin
s:=x;
while s<>0 do begin
z:=z+s mod 10;
s:=s div 10;
end;
if(x*x) = (z*z*z) then
writeln('true')
else
writeln('false');
end
else
writeln('Число должно быть 3-ех значным!');
end.
Третья
Var a,b,c:Real;
Begin
Writeln('Введите a');
Readln(a);
Writeln('Введите b');
Readln(b);
Writeln('Введите c');
Readln(c);
if (a=b) or (a=c) or (b=c) then
writeln ('true')
else
writeln ('false);
end.