p2105.pas
来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· PAS 代码 · 共 45 行
PAS
45 行
PROGRAM p2105;
VAR
a,b :Integer;
n :Longint;
total :Integer;
pos :array[0..6,0..6]of Integer;
save :array[1..52]of Integer;
PROCEDURE Main;
var
i,j :Integer;
ans,l,w :Longint;
begin
save[1]:=1;
save[2]:=1;
i:=3;
fillchar(pos,sizeof(pos),0);
pos[1,1]:=1;
repeat
save[i]:=(save[i-1]*a+save[i-2]*b) mod 7;
if pos[save[i],save[i-1]]=0 then pos[save[i],save[i-1]]:=i-1 else break;
inc(i);
until false;
l:=i-1-pos[save[i],save[i-1]];
if n<=pos[save[i],save[i-1]] then writeln(save[n])
else
begin
w:=n-pos[save[i],save[i-1]]+1;
if w mod l=0 then writeln(save[i-2]) else
writeln(save[(w mod l)+pos[save[i],save[i-1]]-1]);
end;
end;
BEGIN
readln(a,b,n);
while (a<>0)or(b<>0)or(n<>0) do
begin
Main;
readln(a,b,n);
end;
END.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?