请教一下~
21个人围成一圈,依次编号为1到21,从1号开始数,5的倍数离开,直到最后一人为止,设计程序计算剩下的人的编号? 你发到c里面吧...刚有人问过.... #include<iostream>using namespace std;
int main()
{
int i,j=0;
int d[21];
for(i=0;i<21;i++)
d[i]=i+1;
for(i=0;i<21;i++)
{ if((i+1)%5==0)
j++;
else
{ d[i-i/5]=d[i];}
}
cout<<"剩下的数是:";
for(i=0;i<21-j;i++)
cout<<d[i]<<',';
cout<<endl;
return 0;
}
回复 3# 的帖子
楼上的好象有点问题 没怎么注意...也不知道是不是把出队的都剃去了 就这里也有很多啊,约瑟夫环问题。一两句话就求解了,用数学。
当然最直观的还是循环数组。
页:
[1]
