100個房間的開關

//旅館裏有一百個房間,從1到100編了號,第一個服務員把所有的房間門都打開了,
//第二個服務員把所有編號是2的倍數的房間“相反處理”,
//第三個服務員把所有編號是3的倍數的房間作“相反處理”……,
//以後都是如此。問第100個服務員來過後,哪幾扇門是打開的?

#include <stdio.h>
#include <stdlib.h>

int main()
{
int arr[101],i,j,k,arrtemp;
int t=-1; 
for (k=1;k<=100;k++)
{
arr[k]=-1; //開始爲關閉狀態
}


for (i=1;i<=100;i++)//人
{
for (j=i;j<=100;j+=i)//房間
{
arrtemp=-arr[j];    //取反
arr[j]=arrtemp;
}



for (j=1;j<=100;j++)

if (arr[j]==1)  //房間開
{
printf("%d,%d\n",arr[j],j);
}
}


system("pause");
return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章