解题思路:
//我的思路:
//第一个人赋1,第二赋2,最后一人直接问是多少就是几号
//可以利用余数来创造一个既在增加的又在循环的数组
//再利用contiune模拟被踢出圈子
//再用m%3==0来踢人
注意事项:要慢慢debug,具体见代码备注,如有错误还望海涵
参考代码:
#include<stdio.h>
int main()
{
int n;//题目要求
scanf("%d",&n);
int a[999],b[999];
long long x=0,y=0,i,m=4,mm=0,M;//随便设的,mm用来记录总次数,M用来找具体位置
for(i=0;i<n;i++)
a[i]=i+1;
while(x!=n)//踢人
{
int w=0;
M=(mm+n)%n;
for(y=0,w=0;y<x;y++)
{
if(b[y]==a[M])
{
w++;
break;
}
}
if(w!=0)
{
mm++;
continue;
}//以上程序用于跳过已经被踢出程序的人
if(m%3==0)
{
b[x]=a[M];
x++;//比自然多一
}
m++;
mm++;
}
printf("%d",b[x-1]);
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:737 |
C语言程序设计教程(第三版)课后习题6.5 (C++代码)浏览:487 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:600 |
字符逆序 (C语言代码)浏览:506 |
关于float,double变量的几点说明浏览:1926 |
核桃的数量 (C语言代码)浏览:893 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:672 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:606 |
数列问题 (C语言代码)浏览:1068 |
分解质因数 (C++代码)浏览:1561 |