> For the complete documentation index, see [llms.txt](https://cyc-channel.gitbook.io/scratch/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cyc-channel.gitbook.io/scratch/bao-li-po-jie-yong-bu-lei.md).

# 暴力破解永不累

本篇將學到如何重複檢查是否符合條件，直到找出答案為止，還會學到如何運用字串功能儲存答案並顯示出來

## 工具：本篇會用到大量「運算」類型的積木

![](https://1037909400-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLwwLAd_-l8YsFemhSH%2F-LM1_Awy578GZ3kzlxsy%2F-LM1_FAnNESZW4KeGXTx%2F%E7%A9%8D%E6%9C%A8%E9%81%8B%E7%AE%97.PNG?alt=media\&token=f42300fc-1ed0-4d4d-928f-2a5243a7b26e)

## 暖身：將100以內5的倍數都列出來

![將5的倍數都放清單的程式積木](https://1037909400-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLwwLAd_-l8YsFemhSH%2F-LLxDkIEfkc7_urSGQ6F%2F-LLxIsUpd1mS7y6hndy6%2F5%E7%9A%84%E5%80%8D%E6%95%B8.PNG?alt=media\&token=26435a5b-0af9-4336-bd3a-1ee7347c643d)

1. 從1開始檢查到100，所以變數一開始設為0
2. 變數每次增加1後，如果能被5整除就加進清單
3. 重複執行檢查到100

## 暖身：將100以內5的倍數直接說出來，數字用「,」隔開

![將5的倍數說出來並用「,」隔開的程式積木](https://1037909400-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLwwLAd_-l8YsFemhSH%2F-LLxDkIEfkc7_urSGQ6F%2F-LLxKKv9ksbxMdFLnMtm%2F%E8%AA%AA%E5%87%BA.PNG?alt=media\&token=2218c40e-2648-4c34-a5f5-8660c807c897)

關鍵在於使用字串組合來累積答案，每次檢查到新的符合條件的答案，就會再加入字串裡面顯示

![將5的倍數說出來並用「,」隔開的執行結果](https://1037909400-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLwwLAd_-l8YsFemhSH%2F-LLxDkIEfkc7_urSGQ6F%2F-LLxKHywBN8NhFM2OJak%2F%E8%AA%AA%E5%87%BA2.PNG?alt=media\&token=6b54f9c1-9be0-4f17-979c-7b94b6c75af6)

## 練習：韓信點兵

> &#x20;三三數之剩二，五五數之剩三，七七數之剩二，問物幾何？<孫子算經>

用程式算出最小符合條件的數為多少?

![](https://1037909400-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLwwLAd_-l8YsFemhSH%2F-LLxL4RE-uBk9cCtjVRS%2F-LLxLEOcr5c8oBKm3POE%2F%E9%9F%93%E4%BF%A1.PNG?alt=media\&token=35935513-6afd-489e-9461-91d7dcb6ed04)

{% hint style="info" %}
試著挑戰看看把10000以內符合條件的數都列出來
{% endhint %}

## 本篇任務怪數問題

> 有個四位數，有著很奇怪的特性，就是千位數與百位數數字相同，十位數與個位數數字相同，而且它還有個正整數的平方根，請問這個數字是多少？

這題關鍵有兩個， 一個是設定數字相同的條件，一個是如何判斷平方根為正整數，只要能設定好這兩個條件篩選，就能找出答案

### 判定千位數與百位數相同的方式

![用字串功能的方式檢查位值，第2個字(百位數)=第1各字(千位數)](https://1037909400-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLwwLAd_-l8YsFemhSH%2F-LM1PN_OcFbc5KwB8X9q%2F-LM1Sm1eOx72vXnQapWP%2F%E6%80%AA%E6%95%B83.PNG?alt=media\&token=d67eba69-07ae-475d-9852-bc45bee34995)

### 判定平方根為正整數的方式

![平方根除以1的餘數=0，能被1整除，代表此數為正整數](https://1037909400-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLwwLAd_-l8YsFemhSH%2F-LM1PN_OcFbc5KwB8X9q%2F-LM1ShfktSnwAFDf9YmV%2F%E6%80%AA%E6%95%B81.PNG?alt=media\&token=e84788ce-742b-4b4d-bf06-43af22401dad)

{% hint style="info" %}
例如若數為4.5，除以1會餘0.5
{% endhint %}

![此數開根號後無條件進入還是等於此數的平方根，代表是正整數](https://1037909400-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLwwLAd_-l8YsFemhSH%2F-LM1PN_OcFbc5KwB8X9q%2F-LM1TuzK-WLSTDGBuC4y%2F%E6%80%AA%E6%95%B84.PNG?alt=media\&token=91aca110-e40e-4cc1-8610-e2a3f4d260c8)

{% hint style="info" %}
例如若數的平方根為2.4，無條件進入後就變3，代表非正整數
{% endhint %}

### 解題程式範例

此題的寫法很多種，建議自己想看看還有什麼方法

![怪數問題程式積木範例(左)](https://1037909400-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLwwLAd_-l8YsFemhSH%2F-LM1VrlxRAzRIFxDG2ew%2F-LM1W_AXGObQRbUmFq6R%2F%E6%80%AA%E6%95%B8%E7%AD%94.PNG?alt=media\&token=97781280-8d0e-44ad-a0cc-aa8431fd2f33)

![怪數問題程式積木範例(右)](https://1037909400-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLwwLAd_-l8YsFemhSH%2F-LM1VrlxRAzRIFxDG2ew%2F-LM1WbBQ4YSilOW6r6cU%2F%E6%80%AA%E6%95%B8%E7%AD%942.PNG?alt=media\&token=53ba5941-e51d-42cb-8b71-edf80210210b)

## 挑戰看看：鳥數

> 鳥數是一種怪異的數，它的定義是這樣的，如果將這個數的每一個位數取出來做乘積與加總，當乘積除以加總能夠整除，這個數字就是鳥數。例如123這個數字就是一個標準的鳥數，取出每個位數做乘積(1x2x3=6)除以加總(1+2+3=6)剛好是6除以6，可以整除，所以數字123就是一個鳥數，請寫出一個程式可以列出1000以內的鳥數。
