切换到宽版
  • 5574阅读
  • 4回复

国王赦免问题 [复制链接]

上一主题 下一主题
离线少先队
 
只看楼主 正序阅读 0 发表于: 2006-12-06
国王赦免问题
传说中有一个残暴的国王,喜欢杀戮百姓。有一次,他抓到30个百姓并要一一杀掉。在这30个百姓中间有一个聪明人,他站出来对国王说:“请国王大发慈悲,赦免二人不死。”国王问:“赦免哪二人不死?”那个聪明人回答说:“我们30个人围成一圈,从1开始报数,凡数到5的人就拉出去杀掉。剩下的人继续从1开始报数,循环反复,直到剩下两个人为止,这两个人被赦免。”
  国王一听很有意思,采纳了聪明人的建议,赦免了两个人,而那个聪明人就是其中之一。请你设计一个程序,由计算机判断聪明人要站在什么位置,才能躲过一场屠杀。
离线hy6210cs
只看该作者 4 发表于: 2007-02-14
努力加油呀~~~~~~~
离线hy6210cs
只看该作者 3 发表于: 2007-02-08
不错嘛~~~~~~~~~~~~~~~~~~~~~~~
离线地震
只看该作者 2 发表于: 2007-01-17
简单的不能在简单了
离线少先队
只看该作者 1 发表于: 2006-12-06
var k,i,s,z:integer; a:array [1..1000] of integer;
begin
writeln; k:=30; for i:=1 to 30 do a:=1;
repeat
  for i:=1 to 30 do
    begin
    s:=s+a;
    if s=5 then begin a:=0; k:=k-1; s:=0; end;
    if k=2 then for i:=1 to 30 do if a=1 then write(i:3);
    end;
until k=2;
end.
快速回复
限100 字节
 
上一个 下一个