九连环游戏算法递归实现
【打印文章】
/////////////////////////////////////////////
//功能:计算九连环游戏中取下第n个环需要几步
//整个游戏所需步数=取下第1个环所需步数+...+取下第9个环所需步数
//实现方法:通过递归模拟取环动作
//语言:pascal
//时间:1999-05
//作者E-mail:sendtowxd@163.net
//源码天地-专业提供Delphi,VB,VC源码 http://www.codesky.net
////////////////////////////////////////////
program jlh(input,output);
VAR
k,s,i,j,total:integer;
PROCEDURE move(n:integer;VAR s:integer);
VAR
j,i:integer;
BEGIN
IF (n=1) OR (n=2)
THEN s:=s+1
ELSE BEGIN
FOR i:=1 TO n-2 DO
move(i,s);
s:=s+1;
FOR j:=1 TO n-2 DO
move(j,s)
END
END;
BEGIN
k:=0;
write('input total=');
read(total);
move(total,k);
writeln;
writeln('s=',k)
END.
//功能:计算九连环游戏中取下第n个环需要几步
//整个游戏所需步数=取下第1个环所需步数+...+取下第9个环所需步数
//实现方法:通过递归模拟取环动作
//语言:pascal
//时间:1999-05
//作者E-mail:sendtowxd@163.net
//源码天地-专业提供Delphi,VB,VC源码 http://www.codesky.net
////////////////////////////////////////////
program jlh(input,output);
VAR
k,s,i,j,total:integer;
PROCEDURE move(n:integer;VAR s:integer);
VAR
j,i:integer;
BEGIN
IF (n=1) OR (n=2)
THEN s:=s+1
ELSE BEGIN
FOR i:=1 TO n-2 DO
move(i,s);
s:=s+1;
FOR j:=1 TO n-2 DO
move(j,s)
END
END;
BEGIN
k:=0;
write('input total=');
read(total);
move(total,k);
writeln;
writeln('s=',k)
END.
本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )
【编程爱好者论坛】