回 帖 发 新 帖 刷新版面

主题:Who can help me???(加分)

1、旅馆里有一百个房间,从1到100编了号,第一个服务员把所有的房间门都打开了,第二个服务员把所有编号是2的倍数的房间“相反处理”,第三个服务员把所有编号是3的倍数的房间作“相反处理”……,以后都是如此。问第100个服务员来过后,哪几扇门是打开的?[em4][em5][em6]
2、n只猴子选大王,选举办法如下:从头到尾1、2、3报数,凡报3的退出;余下的从尾到头1、2、3报数,凡报3的退出;余下的又从头到尾报数,还是报3的退出;依此类推,当剩下两只猴子时,取这时报数报1的为王,若想当猴王,请问当初应占据什么位置?(其中n从键盘输入)[em7][em8][em9]
用一维数组做,拜托!!![em15][em16]

回复列表 (共4个回复)

沙发

都是很难的题啊,想都得想半天

板凳

var a:array[1..m] of integer;
n,i,j,k:integer;
begin
write('N= ');readln(m);
for i:=1 to m do
begin
a[i]:=i;
end;
k:=0;
readln(n);
for i:=1 to m do
begin
for j:=1 to n do
begin
if k<=m-1 then k:=a[k+1] else
k:=1;
end;
write(a[k]:3);
end;
readln;
end.

3 楼

var a:array[1..1000] of integer;
m,n,i,j,k:integer;
begin
write('N= ');readln(m);
for i:=1 to m do
begin
a[i]:=i;
end;
k:=0;
readln(n);
for i:=1 to m do
begin
for j:=1 to n do
begin
if k<=m-1 then k:=a[k+1] else
k:=1;
end;
write(a[k]:3);
end;
end.

4 楼

const
  fangjian=100;
var
  m,n,i,j,k:integer;
  a:array[1..1000] of 0..1;
begin
  readln(n);
  fillchar(a,sizeof(a),1);
  for i:=2 to n do
    for j:= 1 to fangjian do begin
      if j mod i=0 then a[j]:=abs(1-a[j]);
    end;
  for i:=1 to fangjian do begin
    write(i,':');
    if a[i]=1 then write('open ') else write('close ');
  end;
  readln;
end.
第一个程序

var a:array[1..1000] of integer;
m,n,i,j,k:integer;
begin
write('N= ');readln(m);
for i:=1 to m do
begin
a[i]:=i;
end;
k:=0;
readln(n);
for i:=1 to m do
begin
for j:=1 to n do
begin
if k<=m-1 then k:=a[k+1] else
k:=1;
end;
write(a[k]:3);
end;
end.

第二个程序

我来回复

您尚未登录,请登录后再回复。点此登录或注册