解题思路:
注意事项:
参考代码:
#include<iostream>
#include<cstring> //memset()必备
using namespace std;
int main()
{
int people[1000];
int n,m;
while(cin>>n>>m)
{
for(int i=1;i<=n;i++) people[i]=1; //(1表示还在,0表示出圈)
int cnt=0; //先定义为0,一进入循环会先加1的,不用怕。
int i=0; //先定义为0,一进入循环会先加1的,不用怕。
int num=n; //防止在环形循环部分,n值被改变
while(num>1)
{
i++;
if(people[i]==1)
{
cnt++;
if(cnt==m)
{
people[i]=0;
cnt=0;
num--;
}
}
if(i==n) i=0; //环形循环
}
for(int i=1;i<=n;i++)
{
if(people[i]==1) cout<<i<<endl;
}
memset(people,0,n); //一切重开
}
}
0.0分
1 人评分
大神老白 (C语言代码)浏览:715 |
C语言训练-求矩阵的两对角线上的元素之和 (C语言代码)浏览:602 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:1450 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1318 |
C语言程序设计教程(第三版)课后习题6.8 (C++代码)浏览:592 |
关于C语言变量位置的问题浏览:273 |
演讲大赛评分 (C语言代码)浏览:1641 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:345 |
勾股数 (C语言代码)浏览:800 |
矩阵转置 (C语言代码)浏览:784 |