按1,2,3循环报数,报3的出局,求剩下最后一个的编号
以下为,C/C++语言实现:
#include<stdio.h>
#include<string.h>
#define N 10 //不能有分号 否则a[N] 会变成:a[20;]
void count3()
{
int a[N]={0};//行不写具体会出错。
int n=N;
int t=0; //报数
while (n>1){ //只剩下一个人时才停止报数
for(int i=0;i<N;i++)
{
//printf("%d--%d; ",a[i][0],a[i][1]);
if(a[i]==1) continue;
else if(a[i]==0)
{ t++;
if(t%3==0) //也要改成按5,6等报数
{
a[i]=1; //退出的人标识i置1
n--; //还未退出人数减1
}
}
}
}
for(int j=0;j<N;j++)
{
if(a[j]==0) printf("%d----%d; ",j+1, a[j]);
}
}

本文介绍了一个简单的循环报数游戏算法实现,使用C/C++语言。游戏中参与者从1开始依次报数,每到3的倍数时该参与者出局,直至最后剩下一位参与者。代码通过数组标记已出局的参与者,并循环报数直至只剩一人。
3205

被折叠的 条评论
为什么被折叠?



