【データ構造+アルゴリズム】【シミュレーション法】---点灯問題
【 】
n , 1~n. , 2 2 ( ), 3 3 ( , ), , k , ?
【 】
n k, k ≤ n ≤ 1000
【 】
【 】
:7 3
:1 5 6 7
分析:
シミュレーション法を直接使用します.ブール配列lamp[]を設計し、!lamp[i]ではランプがオフになっていることを示し、逆に点灯している.最初は、すべての明かりが閉まっていました.
自分のC++ソースコード:
#include <iostream>
using namespace std;
bool lamp[1001] = {false}; // , 。
int main(void)
{
int n, k;
cin >> n >> k;
for(int i = 1; i <= k; i++) // i
for(int j = 1; i * j <= n; j++) // j , i*j n ,
{
lamp[i * j] = !lamp[i * j]; // ,
}
for(int i = 1; i <= n; i++) if (lamp[i]) cout << i << ' ';
return 0;
}
本文は“mlh 1719233148のブログ”のブログから出て、転載して作者と連絡してください!