📄 lusong7[1].3.cpp
字号:
//小孩踢圈程序,注:根据《中华人民共和国著作权保护法》,此程序
//著作权归卢松所有,可以复制传播,但是吃水不忘挖井人,不多说了!
#include<iostream>
using namespace std;
void main()
{
const int n=17; //总人数
const target=3; //间隔数
int left=n; //还剩几个人
int i=0,t=0; /*i是循环变量兼数组下标,t是记时器,并且都初始化为0*/
int a[n+1]; /*用一个一维数组表示n个人是否已经出圈,0为没有出,
1为已经出圈(此数组从a[1]开始)*/
for(i=1;i<n+1;i++)
a[i]=0; //开始时,n个人在圈内
i=0; //置i值为0
do{
t+=1;
do{
i+=1;
if(i==n+1)
i=1; //当i总数等于n+1时,令i为1,绕圈循环下去
}while(a[i]); //此do while语句是用来选中一个没有出圈的人
if(t==target) //如果记时器是3,到踢人的时候了
{
a[i]=1; //此人被踢出
left-=1; //相应的,总人数减1
t=0; //记时器置0,从新为踢下一个人做准备
}
}while(left>1); /*如果剩余人数大于1,循环踢人,直到剩余人数不大于1,
即是剩下一人*/
for(i=1;i<n+1;i++)
{
if(a[i]==0) //找到那个没有被踢出的人
{
cout<<"最后剩下第"<<i
<<"个小孩了,哈哈,祝贺你没有被踢出去!"
<<endl; //打印出这个人是第几个,并且祝贺他,鼓励他
break; //退出for循环,使程序结束
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -