有100个人围成一圈,并编号,从一开始报数(1-3循环报),每次抽出报过3的人,问最后的人原来是几号.把这个问题用c++编写,我需要c语言的一个程序。

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 13:24:12
有100个人围成一圈,并编号,从一开始报数(1-3循环报),每次抽出报过3的人,问最后的人原来是几号.把这个问题用c++编写,我需要c语言的一个程序。有100个人围成一圈,并编号,从一开始报数(1-3

有100个人围成一圈,并编号,从一开始报数(1-3循环报),每次抽出报过3的人,问最后的人原来是几号.把这个问题用c++编写,我需要c语言的一个程序。
有100个人围成一圈,并编号,从一开始报数(1-3循环报),每次抽出报过3的人,问最后的人原来是几号.
把这个问题用c++编写,我需要c语言的一个程序。

有100个人围成一圈,并编号,从一开始报数(1-3循环报),每次抽出报过3的人,问最后的人原来是几号.把这个问题用c++编写,我需要c语言的一个程序。
最后剩的3个数是:58号、91号、100号继续下去最后一个人是原来的91号.

#include
#define N 10 //定义个数
#define C 3 //定义报数
int main()
{
int a[N];
int i,j,count;
//初始化数组
for(i=0;i{
a[i]=i+1;
}

全部展开

#include
#define N 10 //定义个数
#define C 3 //定义报数
int main()
{
int a[N];
int i,j,count;
//初始化数组
for(i=0;i{
a[i]=i+1;
}
count=N;//计数器
//循环处理前N-1个编号,每次查找出,将计数器递减,直到为1
printf("依次出局:\n");
for(i=0,j=0;count>1;)
{
if(a[i%N]!=0)//如果此数不为0,代表没有出局
{
if(j==C-1)//累加到报数个
{
i=i%N;//循环取编号
printf("%d ",a[i]);//输出
a[i]=0; //置0,代表出局
j=0; //置j=0,重新计数
count--; //计数器减一
while(a[i]==0)//寻找下一个没有出局的编号
{
i++;
i=i%N;//循环取编号
}
continue;//直接执行下一个外循环
}
else//否则累加报数个数
j++;
}
i++;
}
//处理最后一个
printf("\n最后一个:%d\n",a[i]);//输出
getchar();
return 0;
}

收起

有100个人围成一圈,并编号,从一开始报数(1-3循环报),每次抽出报过3的人,问最后的人原来是几号.把这个问题用c++编写,我需要c语言的一个程序。 1-n个人按照顺时针围成一圈,选m作为报数上限,从第s个人开始报数,报m的人出列 从下个人开始报直到出列编号是1,2,……,n的n个人按照顺时针方向围坐一圈,一开始任选一个正整数作为报数上限 100多人围一圈并从1依次编号,1—2报数报1走报2留,循环到最后剩余44号,原来有多少人?44号是最开始编的原来的号 C语言:有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子【问题描述】 有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子,下一个人从1开 C语言 有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数,报数 奥数:一百多个小朋友围成一圈,并从1开始依次编号,如果从1号开始1-2报数,凡是报1的退出圈外,报2的留下这样到最后一人时,剩下的是44号,问,原来有多少人小朋友?求过程 20个左右的小朋友围成一圈,从一开始报数,其中报5的小朋友也恰好报了195,这里共有几个小朋友? 编号为1,2,…,n的n个人按顺时针方向围坐一圈每人持有一个密码(正整数),一开始人选一个正整数作为报数上限m,从第一个人开始按顺时针方向从自1开始顺序报数,报道m时停止报数.报m的人出 有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数,用最简单的C语言, 编号为 1,2,----,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始人选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数.报m的人 求C语言实现约瑟夫环!1.编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人持有一个密码(正整数).一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报 c语言:有n个人围成一圈,按顺序编号.从第1个人开始报数,数到m时该人退出,并且下一个从1重新开始报数.如题 要求按顺序输出退出的人的编号 这是我写的#include stdafx.h#include stdio.hvoid delete1 设编号从1,2,...,n的n个人围坐一圈,约定编号为k(1 有50个同学,头上分别戴有编号为1,2,3…49,50的帽子,他们按编号从小到大的顺序,顺时针方向围成一圈做游戏:从1号同学开始,按顺时针方向”1,2,;1,2…”地报数,接着报”1”的同学全部退出圆圈, C语言:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报 数),凡报到3的人退出圈子 问最后留下#includestid-i(void){main(){while(1){int n,i,a[100],k=0,b[100];for(i=1;i 十几个小朋友围成一圈、按顺时针方向一圈一圈地循环报数、如果报1与报100是同一个人、这一圈小朋友共有多少个? 19个人编号为1至19,任意围成一圈,求证必然有3个相临的人号码之和大于等于32. 编号为1,2,.,n的n个人按照顺时针方向围坐一圈,每个人有且只有一个密码(正整数)……数组解决?编号为1,2,.,n的n个人按照顺时针方向围坐一圈,每个人有且只有一个密码(正整数).一开始任