请教一个关于数组应用Josephus的问题

 我来答
折柳成萌
高粉答主

2017-09-11 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:6216万
展开全部
在这里我们就假设n=41,m=3嘛!
那么程序就可以这样写:
#include<stdio.h>
#include<conio.h>
int main()
{
int arr[41],i,count=0,sum=0;//定义一个数组arr[41];count用来记录报数的编号;sum用来记录已经被杀的总人数
for(i=0;i<41;i++)
{
arr[i]=i+1;//给在场的41个人进行编号
printf("%-4d",arr[i]);//输出这41个人的编号
}
while((41-sum)/3!=0)//当还存活得人还剩下两个时就停止
{
for(i=0;i<41;i++)
{
if(arr[i]!=0)
{
count++;
if(count==3)
{
arr[i]=0;//把已自杀的人的编号设为0
count=0;
sum++;
}
}
}
i=0;//将i清零,以便进行下一次的循环
}
printf("\n请输出幸存者的编号:");
for(i=0;i<41;i++)
{
if(arr[i]!=0)
printf("%-3d",arr[i]);
}
getch();
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式