C++简单邮箱问题

2007-09-12 10:32

问题:今有邮箱150个,按序编号。全部关闭。邮递员从二号开始一次将2的倍数的邮箱打开,然后数倍数为3的邮箱,已经打开的关闭,已关闭的打开。依次操作倍数为4,5,6,。。。。。。150为止。输出最后关闭的邮箱号码。

#include<iostream>
using namespace std;

int main()
{
int g[150];
for(int i=0;i<150;i++)
{
g[i] = i+1;
}
for(int j=1;j<150;j++)
{
for(int m=j;m<150;m++)
{
    if(g[m]==0&&(m+1)%(j+1)==0)
    g[m] = m+1;

else
    if(g[m]!=0 && g[m]%(j+1)==0)
     g[m] = 0;


}
}
for(int p=0;p<150;p++)
{
if(g[p]!=0)
    cout<<g[p]<<endl;

}

return 0;

posted @ 2010-02-03 10:09  玄魂  阅读(483)  评论(0编辑  收藏  举报