这道C语言题怎么做?

有100人按编号从一到一百排成一排,从1开始报数,凡报到3的倍数者退出队列,直至报到队尾,然后又从队尾开始向队首报数(从1开始报),仍是报到3的倍数者退出队列,以上过程反... 有100人按编号从一到一百排成一排,从1开始报数,凡报到3的倍数者退出队列,直至报到队尾,然后又从队尾开始向队首报数(从1开始报),仍是报到3的倍数者退出队列,以上过程反复进行,直至队列中只剩下2人,求着两人的原始编号。 展开
 我来答
用心明十天
2010-05-14 · TA获得超过1298个赞
知道小有建树答主
回答量:258
采纳率:100%
帮助的人:191万
展开全部
#include<stdio.h>
main()
{
int a[100],i,j,k,n,m;
int tem;
printf("Please input the value of n and m like [n:m]\n");
while(1)
{
scanf("%d:%d",&n,&m);
for(i=0;i<n;i++)
a[i]=i+1;
for(i=1;i<n;i++)
for(j=1;j<m;j++)
{
tem=a[i-1];
for(k=i;k<n;k++)
a[k-1]=a[k];
a[n-1]=tem;
}
for(i=0;i<n;i++)
printf("f(%d)=%d\n",i+1,a[i]);
}
getch();
}
这个问题有多种方法可以处理,我知道的就有四种,
现在告诉你一种简单处理方穗判法,用数组元素的平移
来实现,有兴趣自己分析吧。首先要输入n:m,n表
示总数,m表示要报的数,在这里是100:3,我以前
编的程序是输出整个过程,按照辩族拆你的携枣题意你让它输
出最后两个就是了。
promise_遗忘_
2010-05-14 · TA获得超过223个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:109万
展开全部
#include<举斗stdio.h>
int main(){
int a[100],i,j=0,num=0;
for(i=0;i<尺或100;i++){
a[i]=i+1;
}
for(i=0;num<正困磨98;i++){
if(a[i]==-1){;}
else{
j++;
if(j%3==0){
a[i]=-1;
num++;
}
}
if(i==99){
i=0;
}
}
for(i=0;i<100;i++){
if(a[i]!=-1){
printf("%-4d",i+1);
}
}
printf("\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友52aeb54
2010-05-14 · TA获得超过2995个赞
知道小有建树答主
回答量:1261
采纳率:0%
帮助的人:1156万
展开全部
例7、Joseph问题
N个人排成一圈,从1数到K,第K个人出圈,请输出出运陵圈人的次序。
测试前明案例:(N=10,K=4)
下标 0 1 2 3 4 5 6 7 8 9 出局者
第 1轮 0 1 2 -1 4 5 6 7 8 9 3
第 2轮 0 1 2 -1 4 5 6 -1 8 9 7
第 3轮 0 -1 2 -1 4 5 6 -1 8 9 1
第 4轮 0 -1 2 -1 4 5 -1 -1 8 9 6
第 5轮 0 -1 -1 -1 4 5 -1 -1 8 9 2
第 6轮 0 -1 -1 -1 4 5 -1 -1 8 -1 9
第 7轮 0 -1 -1 -1 4 5 -1 -1 -1 -1 8
第 8轮 -1 -1 -1 -1 4 5 -1 -1 -1 -1 0
第 9轮 -1 -1 -1 -1 4 -1 -1 -1 -1 -1 5
第10轮 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 4
#define N 10
#define K 4
void main()
{ int a[N],i,j,k; /* k是慧悄告待出局者的下标 */
for(i=0; i<N; i++) a[i]=i;
k=0;
for(i=0; i<N; i++) /* 每次循环找到一个出局者 */
{ j=0;
while(1)
{ if(a[k]!=-1) j++; /* 数人头 */
if(j==K) break;
k=(k+1) % N; /* 转圈数数 */
}
printf("%d,",a[k]); a[k]=-1;
}
}

看看
改改
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式