高程: 输入数字n,n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),最后留下的是原来的第号?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高程: 输入数字n,n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),最后留下的是原来的第号?相关的知识,希望对你有一定的参考价值。

越简单越好

请楼主查收
m为人数,n为要报的数
int main()



int s=0,m,n,i;

scanf("%d %d",&m,&n);

for(i=2;i<=m;i++)

s=(s+n)%i;

printf("The left child is NO %d.\n",s+1);
return 0;

参考技术A 楼上回答是错的! 楼主的意思是到数的还得去除!约瑟夫问题! 数据结构上有 ! 结果就是那个还是1的那个
#include<iostream>
using namespace std;
void v(int *a,int gape,int n)

int k=0,count=0;
for(int j=0;j<n-1;j++)

while(true)

if(a[k]==1)

count++;

if(count==gape)

a[k]=0;
count=0;
break;

k++;
k=k%n;



int main()

int n,gape,*a,i;
cout<<"enter the number of people"<<endl;
cin>>n;
cout<<"enter the gape:"<<endl;
cin>>gape;
a=new int[n];
for(i=0;i<n;i++)

a[i]=1;

v(a,gape,n);
for(i=0;i<n;i++)

cout<<a[i];

delete[] a;
return 0;
参考技术B 请将题目补充完整

以上是关于高程: 输入数字n,n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),最后留下的是原来的第号?的主要内容,如果未能解决你的问题,请参考以下文章

4.c语言编有n个人围成一圈,顺序排号。从第一个人开始报数(从1到m报数),凡报到m的人退出(m>n)(

有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位

c语言,有n个人围成一个圈,顺序排号,从第一个开始报数(1到3),凡报到3的退出圈子问最后留下的人

C++ 结构有n个人围成一圈,顺序排号。从第一个开始报数(从1到3报数),凡报到3的人退出圈子,(用结构)

C语言 n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,计算最后留下的是最初第几号人

C语言 n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,计算最后留下的是最初第几号人