C语言编程,17个人站成圈按顺序喊1、2、3,喊到3即被剔出,问最后剩下的那个人在原来圈中的位置

[复制链接]
查看11 | 回复3 | 2013-5-17 16:56:39 | 显示全部楼层 |阅读模式
#include void main(){int a[17],i,j,k;// 每个数组元素记录下一个元素的位置, 最后一个元素a[16]的下个位置是0for(i=0;i<16;i++)a=i+1;a[16]=0;i=0;while(i!=a) // 当只剩最后一个元素是, 他的下个元素的就是它自己{for(k=1;k<3;k++){j=i;i=a;} // 往后跳两个位置a[j]=a;i=a[j];//把位置i的元素剔除, 这时i前一个元素里记录的是i后一个元素的位置}printf("%d\n",i);}...
回复

使用道具 举报

千问 | 2013-5-17 16:56:39 | 显示全部楼层
你去了解静态链表...
回复

使用道具 举报

千问 | 2013-5-17 16:56:39 | 显示全部楼层
约瑟夫问题,解决的办法有很多!!!但是应该还是链表的执行效率最高,另外可以看看指针怎么解的!!!...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行