免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/u011544909/article/details/80050154
問題灯、n型ランプは、1〜nの番号が付け。すべてのライトへの最初の人がオンされ、2の倍数(ランプがオフにされる)番号スイッチを押すと全ての第2の個体は、すべての3番目の数字は、スイッチ3を押すの倍数である(ここでオフランプは、ランプなど)オフにされ、駆動、オンになっています。k個の個々の合計とは最終的にライトがオンになっているものを尋ねましたか?
[サンプル入力]
73
サンプル出力] [
1567
分析:その数は1であるか否かにアレイ、2 ...ランプ駆動..n、これらの操作をシミュレートすることができます。
各アレイの値を0に初期化され、その後、ランプがバイナリ状態0で表され、それぞれが1が0となる状態のランプの数に対応する、オン1オフで、ランプの状態が0になります1することができます。
#include <bits/stdc++.h>
#define MAXN 1010
using namespace std;
static int a[MAXN];
int main()
{
int n,k,first=1;
while(cin>>n>>k)
{
memset(a,0,sizeof a);
for(int i=1;i<=k;i++)
for(int j=1;j<=n;j++)
{
if(j%i==0)a[j]=!a[j];
}
for(int i=1;i<=n;i++)
if(a[i]) {if(first) first=0;else cout<<" ";cout<<i;} //防止第一个数前输出空格
cout<<endl;
}
return 0;
}