急!几个数组问题~
1. 有 N 个人围成一圈参加游戏,游戏的规则是:N个人的编号分别为1、2、……、N,以编号为‘1’的人开始报数,报到 M 时该人跳出圈子,下一人继续报数。按此要求依次输出所有跳出圈子人员的编号。例如:由 9 个人(N = 9)参加游戏,M 为 5,则出圈次序为:5,1,7,4,3,6,9,2,8
2. 已知一维数组 A 共有25个元素,值为:A(I)=I,现将此一维数组存入二维数组 B(5,5),存放次序为:
A(1) A(2) A(5) A(10) A(17)
A(4) A(3) A(6) A(11) A(18)
A(9) A(8) A(7) A(12) A(19)
A(16) A(15) A(14) A(13) A(20)
A(25) A(24) A(23) A(22) A(21)
即:
B(1,1)=A(1) B(1,2)=A(2) B(1,3)=A(5) B(1,4)=A(10) B(1,5)=A(17)…
3. 在屏幕上输出杨辉三角形的前 N 行:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
我在网上搜到的第一题的解法可以是:
clear
input "请输入人数 n=" to n
input "请输入m=" to m
dimension a(n)
a=1
s=0
k=0
do while k<n
for i=1 to n
if a(i)=1
s=s+1
if s=m
?i
k=k+1
a(i)=0
s=0
endif
endif
endfor
enddo
但是我就是闹不懂 “if a(i)=1”与 “a(i)=0” 这两句命令在这个程序中充当了什么样的作用~请高手指导一下~
第二题说实话我连题意都没看懂~汗……
第三题我勉强写了一个程序,貌似还成,但是那个“??space(9)”着实是我一个个试验出来的,看见到9勉强对齐了就写上了,不知道对不对……
clear
input "n=" to n
dimension a(n,n)
a=1
for i=1 to n
?1
if i>=2
for j=2 to i-1
a(i,j)=a(i-1,j-1)+a(i-1,j)
??a(i,j)
endfor
??space(9)
??1
endif
endfor
谢谢各位大虾的耐心指导啊~!
[ 本帖最后由 wendao6dh 于 2011-6-1 10:17 编辑 ]