demi rose大尺度:pascal约瑟夫问题答案

来源:百度文库 编辑:高校问答 时间:2024/03/29 13:37:50
围绕着山顶有10个洞,一只兔子和一只狐狸各住一个洞.兔子对狐狸说:你想吃我有一个条件,第一次隔一个找我,第二次隔二个找我,以后依次类推,1000次,若不能找到我,就不能吃了我.果然,狐狸没有找到,问兔子躲在哪个洞里才安全?(要编程过程答案)

program l_1(input,output);
type
arrtype=array[1..10] of integer;
var
a:arrtype;
i,t:integer;
procedure find(i:integer);
var
j:integer;
begin
for j:=0 to i do
if t<10 then t:=t+1 else t:=1;
a[t]:=a[t]+1;
end;
begin
t:=3;
fillchar(a,sizeof(a),0);
a[t]:=1;
for i:=2 to 1000 do
find(i);
for i:=1 to 10 do
if a[i]=0 then write(i:8);
writeln;
end.

等一下答案就来了
http://zhidao.baidu.com/question/3721374.html

【参考程序1】

const

holenumber=10;

var var

hole:array[0..holenumber] l,f,t:integer;

of 0..1; a:array[1..m+1] of 0..1;

step,i,number:longint; begin

begin for t:=1 to m do

for i:=0 to 9 do hole[i]:=0; a[t]:=0;

number:=0; f:=0; t:=0; l:=0;

for step:=1 to 1000 do begin repeat

number:=number+step; l:=l+1;

i:=number mod holenumber; t:=t+l;

hole[i]:=1; if t>m+1 then t:=t mod m;

end; if t=0 then t:=10;

for i:=0 to holenumber-1 do a[t]:=1;

if hole[i]=0 then write(i:3); f:=f+1;

readln; until f=1000;

end. for t:=1 to 10 do

if a[t]=0 then write(t,' ');

readln

end.

拜托!这个不是约瑟夫问题!约瑟夫问题是猴子选大王问题!