#37644: C++ 暴力解


chocolate.magic.h@gmail.com (20林達志)

學校 : 不指定學校
編號 : 237970
來源 : [140.116.112.105]
最後登入時間 :
2024-11-22 14:33:12
k145. 街燈管理員 -- 板橋高中教學題 | From: [111.249.28.33] | 發表日期 : 2023-09-23 21:02

跟句題目敘述,文文走到第 i 趟時,會撥動編號為 𝑖 的倍數的街燈開關,所以只要把每次走過的情況列出來,最後再去數有多少盞燈是亮的即為答案。

          第  1  2  3  4  5  6  7  8  9 ............. 盞燈
第一次     O O O O O O  O O O
第二次     O X  O X O  X  O X O

           ...............
第九次     O X  X O X  X  X  X O

           ...............

這樣就已經能看出規律了,亮一個燈,後面暗的燈會多兩個,如果還不相信那就繼續往下列。

(怕會列太久,所以說個列快一點的方法,該數字有奇數個因數,最後就會亮。eg: 1 = 1. 9 = 1, 3, 9. 16 = 1, 2, 4, 8, 16. 25= 1, 5, 25 )

 

 

---------------------以下為程式碼---------------------

#include <iostream>
using namespace std;
int main()
{
    int N;
    while (cin >> N)
    {
        long long int streetlight;
        int i = 0, j = 2;
        while (streetlight < N)
        {
            streetlight = streetlight + 1;
            streetlight = streetlight + j;
            i = i + 1;
            j = j + 2;
        }
        cout << i << endl;
    }
}

 
ZeroJudge Forum