演算法題 百燈判熄

2022-03-05 02:58:24 字數 863 閱讀 6237

題目:有一百盞燈,編號1~100,分別對應100個開關控制。開始全部朝上(表示開,朝下表示關),然後進行以下操作:編號為1的倍數的反方向撥開關,編號為2的倍數的反方向撥開關,編號為3的倍數的反方向撥開關............   編號為100的反方向撥一次開關;問最後為熄滅狀態的燈的編號。

以下是我的**

bool light = new

bool[100

];

for (int i = 0; i < 100; i++)

light[i] = true; //

所有燈初始狀態為開

for (int i = 0; i < 100; i++)

for (int j = 0; j < 100; j++)

if ((j + 1) % (i + 1) == 0) //

如果編號為n的倍數

light[j] = light[j] == false ? true : false; //

反向撥開關

for (int i = 0; i < 100; i++)

if (light[i] == false

) console.writeline("第

" + (i + 1) + "

號燈為熄滅

");

以下是某大神令人心碎的**

for (int i = 1; i <= sqrt(100); i++) cout << "第"

<< i*i << "

個燈是熄滅的

"<< endl;

學習了!

1122 百燈判熄

有m盞燈,編號為1 m,分別由相應的m個開關控制。開始時全部開關朝上 朝上為開,燈亮 然後進行以下操作 編號凡是1的倍數的燈反方向撥一次開關 是2的倍數的燈再反方向撥一次開關 是3的倍數的燈又反方向撥一次開關,直到是m的倍數的燈又反方向撥一次開關。請從鍵盤輸入乙個整數m代表燈的數量,求出最後為熄滅狀...

百燈判熄(C語言)

有m盞燈,編號為1 m 1 m 100 分別由相應的m個開關控制。開始時全部開關朝上 朝上為開,燈亮 然後進行以下操作 編號凡是1的倍數的燈反方向撥一次開關 是2倍數的燈反方向再撥一次開關 是3倍數的燈又反方向撥一次開關,直到是m的倍數的燈又反方向撥一次開關。從鍵盤上輸入乙個整數m代表燈的個數 熄滅...

基礎演算法題 百元買百雞

題目 公雞5文錢乙隻,母雞3文錢乙隻,小雞3只一文錢,用100文錢買一百隻雞,其中公雞,母雞,小雞都必須要有,問公雞,母雞,小雞要買多少只剛好湊足100文錢。首先來分析一下 設公雞為x只,母雞為y只,小雞為z只,可的 x y z 100 5x 3y z 3 100 由於每種雞最少1只,所以公雞最多能...