设有n个人围成一个圈并接顺时针方向由1~n编号。从第s个人开始进行从1到m报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m报数,如此进行下去,直到所有的人都出圈为止。
(选自刘艺的《Delphi程序设计大学教程》)Program joseph;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
n=10;
s=2;
m=4;
var
p:array [1..n] of integer;
I,j,k,ml,sl:integer;
W:________;
Begin
Ml:=m;//1到m报数
Sl:=s;//第s个人开始进行报数
For I:=1 to n do
__________;
for I:=n downto 1 do
begin
sl:=___________;
if sl=0 then ________;
w:=p[sl];
p[I]:=w;
end;
writeln(inttostr(n)+’个人围成一个圈并接顺时针方向由1开始顺序编号。’);
writeln(‘从第’+inttostr(s)+’个人开始进行从1到’
+inttostr(m)+’报数,报数到’+inttostr(m)+’的人出圈。’)
writeln(‘出圈先后顺序如下:’);
for_________do
write(p[i]:4);
readln;
End;
(选自刘艺的《Delphi程序设计大学教程》)Program joseph;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
n=10;
s=2;
m=4;
var
p:array [1..n] of integer;
I,j,k,ml,sl:integer;
W:________;
Begin
Ml:=m;//1到m报数
Sl:=s;//第s个人开始进行报数
For I:=1 to n do
__________;
for I:=n downto 1 do
begin
sl:=___________;
if sl=0 then ________;
w:=p[sl];
p[I]:=w;
end;
writeln(inttostr(n)+’个人围成一个圈并接顺时针方向由1开始顺序编号。’);
writeln(‘从第’+inttostr(s)+’个人开始进行从1到’
+inttostr(m)+’报数,报数到’+inttostr(m)+’的人出圈。’)
writeln(‘出圈先后顺序如下:’);
for_________do
write(p[i]:4);
readln;
End;
解决方案 »
- 【求教】公司市场部是不是接了单子交接给技术部就不用再关心了?
- 关于TTreeView控件的问题
- (1)XPMenu2.2在Delphi7中有部分功能失效了!(2)D7中的XPMan怎样达到OfficeXP效果?请问怎样解决?
- 刚学delphi!!帮忙
- ★★★★★★★★★★★★★★★★★★★一个敏感的话题,非科班出生的程序员不可能走得太远?!★★★★★★★★★★★★★★★★★★
- Delphi的高手请进?????
- 请问如何将报表控件preview生成窗体中的英文提示换成中文
- delphi如何象C一样进行条件编译
- 小菜问题,怎样将字符串转换成常量名
- 哈哈!这个问题怎样解决?
- 请教怎样用dbgrideh制作一个不规则的报表?
- 奇怪的SQL语句,将字符串转化成FLOAT??各位指点啊。
2、p[i] := i;
3、s1 := (s1 + m - 1) mod i;
4、s1 := i;
5、for i := n downto 1 do
6、老兄,你的问题是不是还带改错的???那本书没看过,我想 “p[i]:=w;” 和 “w := p[sl];” 那两句之间似乎少了个填空:
w := p[sl];
for j := s1 + 1 to i do
s[j - 1] := s[j];
p[i] := w;