问题: 输入之后, 问题:当n,m输入之后,找出一条从左下角到右上角的路径。 , 输入之后 找出一条从左下角到右上角的路径。 若不存在路径,则输出“NO” 若不存在路径,则输出“NO”. 样例 输入: 输入:4 3 输出: 输出 0,0 -> 1,2 -> 3,1 ->4,3
const x0:array[1..4]of integer=(1,2,2,1); y0:array[1..4]of integer=(2,1,-1,-2); var m,n,k,i:integer;{k是栈顶指针 是栈顶指针} 是栈顶指针 x:array[0..1000,1..2]of integer;{保存每一跳的位置} integer;{保存每一跳的位置 保存每一跳的位置} y:array[1..1000]of integer;{栈,保存每一跳的方向 保存每一跳的方向} 栈 保存每一跳的方向 function nok(k:integer):boolean;{会不会出界 会不会出界} 会不会出界 var i,j:integer; begin i:=x[k-1,1]+x0[y[k]]; j:=x[k-1,2]+y0[y[k]]; if(i>n)or(j>m)or(j<0) then nok:=true{出界 出界} 出界 else nok:=false; end;
x[k]:=0 end end ; end. 2 1 0 4 3 1 3 0 4 2 0 3 4 1 2 0 2 1
k
例2、数字排列问题
列出所有从数字1到数字 的连续自然数的排列 列出所有从数字 到数字n的连续自然数的排列 要求所产生的 到数字 的连续自然数的排列,要求所产生的 任一数字序列中不能出现重复的数字. 任一数字序列中不能出现重复的数字. 输入: ( 输入:n(1<=n<=9) ) 输出: 组成的所有不重复的数字序列, 输出:由1~n组成的所有不重复的数字序列,每行一个序列. ~ 组成的所有不重复的数字序列 每行一个序列. 样例 输入: 输入: 3 输出: 输出: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1