自己写的,和答案不同但是不保证是高效程序。请勿抄袭。(妹的这个绝对和答案不同!答案用了一个什么什么函数还是公式,直接套公式做了(事后看了那个公式表示不太懂),我TM直接自己弄了个超复杂方法出来。编的时候因为太复杂修改了n次差点吐血!!!!!)
C语言大家一起做游戏
Cxy,Bit.
自己写的,和答案不同但是不保证是高效程序。请勿抄袭。(妹的这个绝对和答案不同!答案用了一个什么什么函数还是公式,直接套公式做了(事后看了那个公式表示不太懂),我TM直接自己弄了个超复杂方法出来。编的时候因为太复杂修改了n次差点吐血!!!!!)
题目:大家一起做游戏
幼儿园的小朋友们刚学习了如何数数,阿姨在下课时组织大家一起玩游戏。规则如下:所有的小朋友绕成一圈,顺序排号,从第一个小朋友开始报数,凡是报到固定数字(例如5)的,都退出该游戏,直到只剩下一位小朋友游戏才中止。
每个小朋友都希望自己能有更多的练习数数的机会,所以都希望成为最终被留下的那位。 现在,请大家帮小朋友们计算一下,在第一次排号的时候排到第几位才能成为最终被留下的小朋友。
输入:小朋友的个数(<=50) 要被练习的数字
输出:最终被留下的小朋友的序号
说明:如“要被练习的数字”是5,则每次数到5的同学要退出该游戏
代码:
#include
int main()
{int i,k=0,j,e,s,z=0,p,d,l=0,m=0,q;
static int a[52]={0},b[52]={0};
scanf("%d %d",&e,&s);
q=s;
for(i=1;i<=e;i++)
a[i]=i;
for(k=0;k<=52;k++)
{if(z!=0) {d=z;p=0;m=0;
for(j=1;j<=e;j++)
b[j]=0;
for(;z<=e;z++)
{ if(a[z]!=0) {p+=1;b[p]=a[z];}}
for(j=1;j<=e;j++)
{ if(p==0&&a[j]!=0) {b[1]=a[j];p+=1;}
else if(p!=0&&a[j]!=0) {if (p!=1&&a[j]==b[1]) break;
else {p+=1;b[p]=a[j];}}} for(j=1;j<=e;j++)
a[j]=0;
for(j=1;j<=e;j++)
{a[j]=b[j];}
k=0;z=0;}
for(i=1;i<=e;i++)