/*问题描述:给出n、k,n(1——n)是灯的总盏数,k(1-k)是选定的号数,每个号数对应一次
按快关的机会,如,第i号会按i,i*2,i*3……灯的开关,灯原来开着会关掉,关着的会开启。问最后那几盏灯是亮的*/
#include<iostream>
using namespace std;
int light[550];
int main(){
int n, k;
cout << "input n:";
cin >> n;
cout << "input k:";
cin >> k;
memset(light, 0, sizeof(light));
for (int i = 1; i <= k;i++)
for (int j = i; j <= n; j += i)
light[j] = (light[j]==0)?1:0;
for (int i = 1; i <= n;i++)
if (light[i] != 0)cout << i << " ";
cout << endl;
system("pause");
}
ps:1. 数组开大的时候不能放在main()函数中,否则会出现异常
2.数组自身的索引号也是一种信息
563

被折叠的 条评论
为什么被折叠?



