百度:100个灯泡
void test()/*百度:100个灯泡,第一轮所有灯泡打开,第二轮每隔一个灯泡关掉, 即排在偶数的灯泡都被关掉,第三轮每隔两个灯泡,将开着的灯泡关掉, 关掉的灯泡打开,依次类推,第100轮结束的时候还有几盏灯泡亮着*/ { bitset<101> b; b.set(); int count=2; int maxCount=100; int len=1; for(int i=count; i<=maxCount; i++) { len++; for(int j=0; j<b.size(); j=j+len) { b[j]=(b[j]==0 ? 1:0); } } for(int j=0; j<b.size(); j++) { if(b.test(j)) { cout << j << " ";//1 4 9 16 25 36 49 64 81 100 } } }