c语言Josephus问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 03:15:56
用数组解决啊!!
也就是约瑟夫问题

围绕着山顶有10个洞,狐狸要吃兔子,兔子说:“可以,但必须找到我, 我就藏身于这十个洞中,你从10号洞出发,先到1号洞找,第二次隔1个 洞找,第三次隔2个洞找,以后如此类推,次数不限。”但狐狸从早到晚进 进出出了1000次,仍没有找到兔子。问兔子究竟藏在哪个洞里?

是这个问题吗?

int Fox(){
boolean hole[11]; 代表10个洞 我们这里只用1-10比较好直观
integer step,i;
for(i=1;i<=10;i++) hole[i]=true;
i=0;
for(step=1;step<=1000){
i=i+step;
if(i%10==0) hole[10]=false; else hole[i%10]=false;
}
for(i=1;i<=10;i++) if(hole[i]) printf("%4d",i);
}
思路就是这样子,很久没用C,语法格式有错自己改。
最简单的方法(javascript):
<script language="javascript">
var hole="1234567890"; //代表10个洞
var step,i;
i=0;
for(step=1;step<=1000;step++){
i=i+step;
hole=hole.replace(i%10,"");
}
alert(hole);
</script>
记得给我加分哦。。。。。。。。。。。。。。。

这么有趣的问题。谢谢。呵呵