1.下面这个程序怎样做出来?用笔算
var
n:longint
function g(k:longint):longint;
begin
if k <=1 then g:=k
else g:=(2002*g(k-1)+2003*g(k-2))mod 2005;
end;
begin
read(n);
writeln(g(n));
end.
输入:2005
答案输出:31
2、下面这个程序怎样做出来?用笔算
program program4;
const
u: array[0..2] of integer = (1, -3, 2);
v: array[0..1] of integer = (-2, 3);
var
i, n, sum: integer;
function g(n: integer): integer;
var i, sum: integer;
begin
sum := 0;
for i := 1 to n do inc(sum, u[i mod 3] * i);
g := sum;
end;
begin
sum := 0;
read(n);
for i := 1 to n do inc(sum, v[i mod 2] * g(i));
writeln(sum);
end.
输入:103
答案输出:-400
3.下面这个程序怎样做出来?用笔算
var
a : array[1..50] of integer;
n,i,sum:integer;
procedure work(p,r:integer);
var
i,j,temp:integer;
begin
if p<r then
begin
i:=p-1;
for j:=p to r-1 do
if a[j]>=a[r] then
begin
inc(i);
temp:=a; a:=a[j]; a[j]:=temp;
end;
temp:=a[i+1]; a[i+1]:= a[r]; a[r]:=temp;
work(p,i);
work(i+2,r);
end;
end;
begin
read(n);
for i:=1 to n do read(a);
work(1,n);
for i:=1 to n-1 do sum:=sum+abs(a[i+1]-a);
writeln(sum);
end.
输入:10 23 435 12 345 3123 43 456 12 32 -100
答案输出:3223