注册 登录
编程论坛 C++教室

请教一下~

东海骑鲸客 发布于 2008-04-20 15:53, 510 次点击
21个人围成一圈,依次编号为1到21,从1号开始数,5的倍数离开,直到最后一人为止,设计程序计算剩下的人的编号?
5 回复
#2
sunkaidong2008-04-20 15:56
你发到c里面吧...刚有人问过....
#3
zhxhhyqj2008-04-21 19:33
#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;

}
#4
yellowfish2008-04-21 22:34
回复 3# 的帖子
楼上的好象有点问题
#5
sunkaidong2008-04-21 22:37
没怎么注意...也不知道是不是把出队的都剃去了
#6
aipb20072008-04-21 22:46
就这里也有很多啊,约瑟夫环问题。
一两句话就求解了,用数学。
当然最直观的还是循环数组。
1