<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>淳</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://chuen666666.com/</id>
  <link href="https://chuen666666.com/" rel="alternate"/>
  <link href="https://chuen666666.com/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, 淳</rights>
  <subtitle>淳の神奇小網站</subtitle>
  <title>淳の神奇小網站</title>
  <updated>2026-05-17T09:26:02.801Z</updated>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="程式" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/"/>
    <category term="競程" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/%E7%AB%B6%E7%A8%8B/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="TQC+" scheme="https://chuen666666.com/tags/TQC/"/>
    <category term="心得" scheme="https://chuen666666.com/tags/%E5%BF%83%E5%BE%97/"/>
    <category term="Python" scheme="https://chuen666666.com/tags/Python/"/>
    <category term="全國程式力競賽" scheme="https://chuen666666.com/tags/%E5%85%A8%E5%9C%8B%E7%A8%8B%E5%BC%8F%E5%8A%9B%E7%AB%B6%E8%B3%BD/"/>
    <content>
      <![CDATA[<h2 id="全國程式力競賽"><a href="#全國程式力競賽" class="headerlink" title="全國程式力競賽"></a>全國程式力競賽</h2><p>這次受我校圖書館主任（aka 前班導 aka 前數學老師 aka 前 AI 班老師）邀請，我和 <a href="https://www.yilin0121.com/">@郭10</a> 報名了<a href="https://li100.chihlee.edu.tw/p/406-1005-128725,r1.php">致理科大全國程式力競賽</a>。</p><p>一看到是 TQC+ 辦的，我當時就有一種說不出的安心感，畢竟他們的程式認證或比賽，那可是出了名的專出水題。我曾在學校參加過一次 TQC+ 的檢定並滿分通過，也參加過他們辦的比賽並得了全國第三、北區第二（但那次只有 Python 組，C++ 組是分開排名，這次則是只分高中職組和大學組，語言不另排名），這兩次我基本上寫到的題目都簡單到極點，可以說是只有速度上的差異，難度上基本可以說是沒有鑑別度。</p><p>果然，考卷一下來，你只要全基本語法，也至少可以拿個 80 分（滿分 100 分），唯一死比較多人的是，它考了一題讀檔寫檔（TXT 檔）操作，<del>競程玩家表示你玩不起</del>，但好在我學過，這次又是 100 分提前交卷，成了第二個走出考場的人，七題用不到半小時，而第一個走出去的是 <a href="https://www.yilin0121.com/">@郭10</a> 的一個朋友（@Cheng），我們也在賽前互相認識了一番，又交了一個電神朋友，真不錯。</p><h2 id="最終結果"><a href="#最終結果" class="headerlink" title="最終結果"></a>最終結果</h2><ul><li>@Cheng：第一名</li><li>我：第二名（半小時喜提 $1500 現金）</li><li><a href="https://www.yilin0121.com/">@郭10</a>：佳作第一（即第四名）</li><li><a href="https://www.instagram.com/yuki._0608">@日凪空</a>（我朋友）：佳作第二（即第五名）</li></ul><img src="/img/clud_code_join.jpg" class="d-block mx-auto mb-4" width="500" title="參賽證明"><img src="/img/clud_code_2.jpg" class="d-block mx-auto mb-4" width="500" title="第二名獎狀"><h2 id="關於-TQC"><a href="#關於-TQC" class="headerlink" title="關於 TQC+"></a>關於 TQC+</h2><p>前面說過，TQC+ 的題目專出水題，<del>要不是這次有獎金我才不來呢</del>，這次我寫題時甚至有種「我怎麼好像看過這題」的感覺。直到結束後，才有人告訴我，TQC+ 辦的比賽和檢定用的都是同一套題庫，而且題目其實不多，一下就可以寫完，我也才想起我其實寫過整個題庫的題解，我把它的 <a href="/TQC-題庫「程式語言（第二版）」——Python題解">Python 解</a>全放到了個網外，也加了個 <a href="/TQC-題庫「程式語言（第二版）」——Cpp題解">C++ 的解</a>。那麼他們到底有什麼問題呢？讓我們一一細數。</p><p>首先，或許 TQC+ 辦這種比賽和檢定的用意是給那些剛學程式的新手寫的，但會知道和參加這個比賽的人，很多又是相當有程式基礎的競程人，甚至這次參賽名單上，還有一個聽說是選訓的佬來參加。</p><p>第二是計分和電腦環境問題，我和 TQC+ 的三次交手中，因為第一次在我們學校的電腦教室，相對來說沒什麼太大問題，但二、三次都是在致理科大，而這兩次中，我和朋友的電腦環境都出現了問題，小到 VS Code 語法高亮和自動補全突然炸掉（前面都好好的），大到規定的資料夾被鎖管理員權限開不起來，以及 C++ Compile 前還得先把前一次生出來的 EXE 檔刪掉等等大大小小的問題，讓我對這個比賽的環境穩定性和公平性產生了相當大的質疑，畢竟那個第二次的比賽時間是很緊湊的，處理環境問題的幾分鐘，可能是少 20 分的關鍵。</p><p>第三，題目水、Online Judge 不計時（即不限程式的執行時間）、只有很少題目給數字範圍（雖然經實測，所有題目都能用單精度的 <code>float</code> 和有符號的 <code>int</code> 存下）。水題的問題是鑑別度差，對於比賽而言，這無疑是致命的；OJ 不計時和不給數字範圍的問題，更是讓它透出一種鳥題的味道，題目也真的是有手就行的程度，不用演算法、不考慮複雜度、提交還沒有罰時，更重要的是，測資稀爛不說，還用的是即時評測，要寫出假解可以說是相當容易了。這種種如果作為檢定，那都不是問題，但作為比賽，這問題可太大了，對於有點基礎的人（同時也是最可能拿獎的那批人）而言，這根本是打字速度比賽。</p><p>最後，用公開題庫出題才是我認為真正最影響考試公平性的問題，這意味著任何一個有一丁點程式基礎的人，只要有了這個題庫，那滿分簡直有手就行，但偏偏還不是所有人都知道題庫，官方也沒有明講這一點，這就十分不公平了，尤其對於這麼一個有獎金的比賽裡。</p><p>結論，<del>TQC+ 拉完了</del>，我前兩次參加的比賽或檢定，頂多可以說有點問題，但這麼個有獎金的比賽如果還這麼搞，對於規則的非受益者而言，可以說是相當搞心態了，<del>不過半小時賺 $1500 還是挺爽的</del>。</p>]]>
    </content>
    <id>https://chuen666666.com/%E8%87%B4%E7%90%86%E7%A7%91%E5%A4%A7%E5%85%A8%E5%9C%8B%E7%A8%8B%E5%BC%8F%E5%8A%9B%E7%AB%B6%E8%B3%BD%E2%80%94%E2%80%94%E5%BF%83%E5%BE%97%EF%BC%88%E5%92%8C%E5%B0%8DTQC-%E7%9A%84%E7%9C%8B%E6%B3%95%EF%BC%89/</id>
    <link href="https://chuen666666.com/%E8%87%B4%E7%90%86%E7%A7%91%E5%A4%A7%E5%85%A8%E5%9C%8B%E7%A8%8B%E5%BC%8F%E5%8A%9B%E7%AB%B6%E8%B3%BD%E2%80%94%E2%80%94%E5%BF%83%E5%BE%97%EF%BC%88%E5%92%8C%E5%B0%8DTQC-%E7%9A%84%E7%9C%8B%E6%B3%95%EF%BC%89/"/>
    <published>2026-05-12T03:57:12.000Z</published>
    <summary>分享一下參加致理科大全國程式力競賽的心得，以及對 TQC+ 題目的看法</summary>
    <title>致理科大全國程式力競賽——心得（和對TQC+的看法）</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="程式" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/"/>
    <category term="競程" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/%E7%AB%B6%E7%A8%8B/"/>
    <category term="筆記" scheme="https://chuen666666.com/tags/%E7%AD%86%E8%A8%98/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="題解" scheme="https://chuen666666.com/tags/%E9%A1%8C%E8%A7%A3/"/>
    <category term="競程" scheme="https://chuen666666.com/tags/%E7%AB%B6%E7%A8%8B/"/>
    <category term="TQC+" scheme="https://chuen666666.com/tags/TQC/"/>
    <category term="Code Judger" scheme="https://chuen666666.com/tags/Code-Judger/"/>
    <category term="C++" scheme="https://chuen666666.com/tags/C/"/>
    <content>
      <![CDATA[<p>由於題目可能涉及著作權等問題，此篇僅提供可 AC 的程式碼，相關題目內容請自行至 <a href="https://www.codejudger.com/groups/4534/tqc">Code Judger</a> 的<strong>程式語言（第二版）</strong>登入後閱覽（可使用學校的酷課雲帳號登入）。</p><a class="btn" href="/TQC-題庫「程式語言（第二版）」——Python題解"  target="_blank">TQC+ 題庫「程式語言（第二版）」——Python 題解</a><h2 id="第1類：基本認識"><a href="#第1類：基本認識" class="headerlink" title="第1類：基本認識"></a>第1類：基本認識</h2><h3 id="101"><a href="#101" class="headerlink" title="101"></a>101</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br>    <br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br>    cout &lt;&lt; n + <span class="hljs-number">9</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="102"><a href="#102" class="headerlink" title="102"></a>102</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br>    <br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br>    cout &lt;&lt; fixed &lt;&lt; <span class="hljs-built_in">setprecision</span>(<span class="hljs-number">2</span>) &lt;&lt; n*<span class="hljs-number">23.34</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="103"><a href="#103" class="headerlink" title="103"></a>103</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br>    <br>    <span class="hljs-keyword">int</span> a, b, c;<br>    cin &gt;&gt; a &gt;&gt; b &gt;&gt; c;<br>    <span class="hljs-keyword">int</span> s = a + b + c;<br>    cout &lt;&lt; a &lt;&lt; <span class="hljs-string">&#x27;+&#x27;</span> &lt;&lt; b &lt;&lt; <span class="hljs-string">&#x27;+&#x27;</span> &lt;&lt; c &lt;&lt; <span class="hljs-string">&#x27;=&#x27;</span> &lt;&lt; s &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; fixed &lt;&lt; <span class="hljs-built_in">setprecision</span>(<span class="hljs-number">2</span>) &lt;&lt; s / <span class="hljs-number">3.0</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="104"><a href="#104" class="headerlink" title="104"></a>104</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br>    <br>    <span class="hljs-keyword">float</span> a, b;<br>    cin &gt;&gt; a &gt;&gt; b;<br>    cout &lt;&lt; <span class="hljs-string">&quot;total=&quot;</span> &lt;&lt; fixed &lt;&lt; <span class="hljs-built_in">setprecision</span>(<span class="hljs-number">2</span>) &lt;&lt; a + b;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="105"><a href="#105" class="headerlink" title="105"></a>105</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br>    <br>    <span class="hljs-keyword">int</span> a, b;<br>    cin &gt;&gt; a &gt;&gt; b;<br>    cout &lt;&lt; <span class="hljs-string">&quot;result=&quot;</span> &lt;&lt; fixed &lt;&lt; <span class="hljs-built_in">setprecision</span>(<span class="hljs-number">2</span>) &lt;&lt; <span class="hljs-built_in">sqrt</span>(a+b);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="106"><a href="#106" class="headerlink" title="106"></a>106</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br>    <br>    <span class="hljs-keyword">int</span> x1, y1, x2, y2;<br>    cin &gt;&gt; x1 &gt;&gt; y1 &gt;&gt; x2 &gt;&gt; y2;<br>    cout &lt;&lt; fixed &lt;&lt; <span class="hljs-built_in">setprecision</span>(<span class="hljs-number">2</span>) &lt;&lt; <span class="hljs-built_in">sqrt</span>((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="107"><a href="#107" class="headerlink" title="107"></a>107</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string a, b, c, d, e, f;<br>    cin &gt;&gt; a &gt;&gt; b &gt;&gt; c &gt;&gt; d &gt;&gt; e &gt;&gt; f;<br><br>    cout &lt;&lt; right &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; a &lt;&lt; <span class="hljs-string">&#x27; &#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; b &lt;&lt; <span class="hljs-string">&#x27; &#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; c &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; d &lt;&lt; <span class="hljs-string">&#x27; &#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; e &lt;&lt; <span class="hljs-string">&#x27; &#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; f &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span><br><br>         &lt;&lt; left<br>         &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; a &lt;&lt; <span class="hljs-string">&#x27; &#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; b &lt;&lt; <span class="hljs-string">&#x27; &#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; c &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; d &lt;&lt; <span class="hljs-string">&#x27; &#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; e &lt;&lt; <span class="hljs-string">&#x27; &#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; f &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="108"><a href="#108" class="headerlink" title="108"></a>108</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> rr;<br>    cin &gt;&gt; rr;<br>    <span class="hljs-keyword">float</span> r = rr / <span class="hljs-number">2.0</span>;<br><br>    cout &lt;&lt; left &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; rr &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span><br>         &lt;&lt; fixed &lt;&lt; <span class="hljs-built_in">setprecision</span>(<span class="hljs-number">2</span>) &lt;&lt; left &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; r &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">setprecision</span>(<span class="hljs-number">4</span>) &lt;&lt; <span class="hljs-built_in">setw</span>(<span class="hljs-number">10</span>) &lt;&lt; r * r * <span class="hljs-number">3.1415</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="109"><a href="#109" class="headerlink" title="109"></a>109</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> s;<br>    cin &gt;&gt; s;<br><br>    <span class="hljs-keyword">if</span> (s &gt; <span class="hljs-number">100</span>) &#123;<br>        cout &lt;&lt; <span class="hljs-string">&quot;error&quot;</span>;<br>        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    &#125;<br><br>    cout &lt;&lt; ((s &gt;= <span class="hljs-number">60</span>) ? <span class="hljs-string">&quot;pass\n&quot;</span> : <span class="hljs-string">&quot;fail\n&quot;</span>) &lt;&lt; ((s % <span class="hljs-number">2</span>) ? <span class="hljs-string">&quot;odd&quot;</span> : <span class="hljs-string">&quot;even&quot;</span>);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="110"><a href="#110" class="headerlink" title="110"></a>110</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> a, b, c;<br>    cin &gt;&gt; a &gt;&gt; b &gt;&gt; c;<br><br>    cout &lt;&lt; (a &gt;= <span class="hljs-number">60</span> <span class="hljs-keyword">and</span> a &lt; <span class="hljs-number">100</span>) &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; fixed &lt;&lt; <span class="hljs-built_in">setprecision</span>(<span class="hljs-number">2</span>) &lt;&lt; (b+<span class="hljs-number">1</span>) / <span class="hljs-number">10.0</span> &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; <span class="hljs-built_in">max</span>(a, c);<br>&#125;<br></code></pre></td></tr></table></figure><h2 id="第2類：選擇敘述與迴圈"><a href="#第2類：選擇敘述與迴圈" class="headerlink" title="第2類：選擇敘述與迴圈"></a>第2類：選擇敘述與迴圈</h2><h3 id="201"><a href="#201" class="headerlink" title="201"></a>201</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> x;<br>    cin &gt;&gt; x;<br>    cout &lt;&lt; ((x % <span class="hljs-number">2</span>) ? <span class="hljs-string">&quot;odd&quot;</span> : <span class="hljs-string">&quot;even&quot;</span>);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="202"><a href="#202" class="headerlink" title="202"></a>202</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> x;<br>    cin &gt;&gt; x;<br><br>    <span class="hljs-keyword">if</span> (x &gt; <span class="hljs-number">100</span> <span class="hljs-keyword">or</span> x &lt; <span class="hljs-number">0</span>) &#123;<br>        cout &lt;&lt; <span class="hljs-string">&quot;error&quot;</span>;<br>        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    &#125;<br>    cout &lt;&lt; ((x &gt; <span class="hljs-number">60</span>) ? x + <span class="hljs-number">10</span> : x + <span class="hljs-number">5</span>);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="203"><a href="#203" class="headerlink" title="203"></a>203</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string s[<span class="hljs-number">4</span>] = &#123;<span class="hljs-string">&quot;one&quot;</span>, <span class="hljs-string">&quot;two&quot;</span>, <span class="hljs-string">&quot;three&quot;</span>, <span class="hljs-string">&quot;four&quot;</span>&#125;;<br>    <span class="hljs-keyword">int</span> x;<br>    cin &gt;&gt; x;<br>    cout &lt;&lt; ((x &gt; <span class="hljs-number">0</span> <span class="hljs-keyword">and</span> x &lt; <span class="hljs-number">5</span>) ? s[x<span class="hljs-number">-1</span>] : <span class="hljs-string">&quot;error&quot;</span>);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="204"><a href="#204" class="headerlink" title="204"></a>204</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">calc</span><span class="hljs-params">(<span class="hljs-keyword">int</span> a, <span class="hljs-keyword">int</span> b, <span class="hljs-keyword">char</span> c)</span> </span>&#123;<br>    <span class="hljs-keyword">if</span> (c == <span class="hljs-string">&#x27;+&#x27;</span>) <span class="hljs-keyword">return</span> a + b;<br>    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (c == <span class="hljs-string">&#x27;-&#x27;</span>) <span class="hljs-keyword">return</span> a - b;<br>    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (c == <span class="hljs-string">&#x27;*&#x27;</span>) <span class="hljs-keyword">return</span> a * b;<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> a, b;<br>    <span class="hljs-keyword">char</span> c;<br>    cin &gt;&gt; a &gt;&gt; b &gt;&gt; c;<br>    <br>    <span class="hljs-keyword">if</span> (c == <span class="hljs-string">&#x27;+&#x27;</span> <span class="hljs-keyword">or</span> c == <span class="hljs-string">&#x27;-&#x27;</span> <span class="hljs-keyword">or</span> c == <span class="hljs-string">&#x27;*&#x27;</span>) cout &lt;&lt; a &lt;&lt; c &lt;&lt; b &lt;&lt; <span class="hljs-string">&#x27;=&#x27;</span> &lt;&lt; <span class="hljs-built_in">calc</span>(a, b, c);<br>    <span class="hljs-keyword">else</span> cout &lt;&lt; <span class="hljs-string">&quot;error&quot;</span>;    <br>&#125;<br></code></pre></td></tr></table></figure><h3 id="205"><a href="#205" class="headerlink" title="205"></a>205</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br>unordered_map&lt;string, <span class="hljs-keyword">int</span>&gt; m;<br><br><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">f</span><span class="hljs-params">(<span class="hljs-keyword">int</span> x)</span> </span>&#123;<br>    <span class="hljs-keyword">if</span> (x == <span class="hljs-number">1</span>) m[<span class="hljs-string">&quot;number1&quot;</span>]++;<br>    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (x == <span class="hljs-number">2</span>) m[<span class="hljs-string">&quot;number2&quot;</span>]++;<br>    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (x == <span class="hljs-number">3</span>) m[<span class="hljs-string">&quot;number3&quot;</span>]++;<br>    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (x == <span class="hljs-number">4</span>) m[<span class="hljs-string">&quot;number4&quot;</span>]++;<br>    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (x == <span class="hljs-number">5</span>) m[<span class="hljs-string">&quot;number5&quot;</span>]++;<br>    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (x == <span class="hljs-number">6</span>) m[<span class="hljs-string">&quot;number6&quot;</span>]++;<br>    <span class="hljs-keyword">else</span> m[<span class="hljs-string">&quot;error&quot;</span>]++;<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">10</span>; i++) &#123;<br>        <span class="hljs-keyword">int</span> x;<br>        cin &gt;&gt; x;<br>        <span class="hljs-built_in">f</span>(x);<br>    &#125;<br><br>    <span class="hljs-keyword">for</span> (string k : &#123;<span class="hljs-string">&quot;number1&quot;</span>, <span class="hljs-string">&quot;number2&quot;</span>, <span class="hljs-string">&quot;number3&quot;</span>, <span class="hljs-string">&quot;number4&quot;</span>, <span class="hljs-string">&quot;number5&quot;</span>, <span class="hljs-string">&quot;number6&quot;</span>, <span class="hljs-string">&quot;error&quot;</span>&#125;)<br>    cout &lt;&lt; k &lt;&lt; <span class="hljs-string">&#x27;:&#x27;</span> &lt;&lt; m[k] &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="206"><a href="#206" class="headerlink" title="206"></a>206</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">calc</span><span class="hljs-params">(<span class="hljs-keyword">int</span> n)</span> </span>&#123;<br>    <span class="hljs-keyword">int</span> cnt = (n+<span class="hljs-number">1</span>) / <span class="hljs-number">2</span>;<br>    <span class="hljs-keyword">return</span> cnt * cnt;<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> a, b;<br>    cin &gt;&gt; a &gt;&gt; b;<br>    cout &lt;&lt; <span class="hljs-built_in">calc</span>(b) - <span class="hljs-built_in">calc</span>(a<span class="hljs-number">-1</span>);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="207"><a href="#207" class="headerlink" title="207"></a>207</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">bool</span> <span class="hljs-title">prime</span><span class="hljs-params">(<span class="hljs-keyword">int</span> n)</span> </span>&#123;<br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">2</span>; i*i &lt;= n; i++) <span class="hljs-keyword">if</span> (n % i == <span class="hljs-number">0</span>) <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br>    string s = (<span class="hljs-built_in">prime</span>(n)) ? <span class="hljs-string">&quot;&quot;</span> : <span class="hljs-string">&quot; not&quot;</span>;<br>    cout &lt;&lt; n &lt;&lt; <span class="hljs-string">&quot; is&quot;</span> &lt;&lt; s &lt;&lt; <span class="hljs-string">&quot; a prime number&quot;</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="208"><a href="#208" class="headerlink" title="208"></a>208</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">bool</span> <span class="hljs-title">prime</span><span class="hljs-params">(<span class="hljs-keyword">int</span> n)</span> </span>&#123;<br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">2</span>; i*i &lt;= n; i++) <span class="hljs-keyword">if</span> (n % i == <span class="hljs-number">0</span>) <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">2</span>; i &lt; n; i++) <span class="hljs-keyword">if</span> (<span class="hljs-built_in">prime</span>(i)) cout &lt;&lt; i &lt;&lt; <span class="hljs-string">&#x27; &#x27;</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="209"><a href="#209" class="headerlink" title="209"></a>209</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br><br>    <span class="hljs-keyword">if</span> (n != <span class="hljs-number">0</span> <span class="hljs-keyword">and</span> n != <span class="hljs-number">1</span>) &#123;<br>        cout &lt;&lt; <span class="hljs-string">&quot;error&quot;</span>;<br>        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    &#125;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">1</span>; i &lt;= <span class="hljs-number">5</span>; i++) &#123;<br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> j = <span class="hljs-number">1</span>; j &lt;= <span class="hljs-number">5</span>; j++) &#123;<br>            <span class="hljs-keyword">if</span> (n == <span class="hljs-number">0</span>) cout &lt;&lt; i &lt;&lt; <span class="hljs-string">&quot; x &quot;</span> &lt;&lt; j &lt;&lt; <span class="hljs-string">&quot; = &quot;</span> &lt;&lt; i * j &lt;&lt; <span class="hljs-string">&#x27;\t&#x27;</span>;<br>            <span class="hljs-keyword">else</span> cout &lt;&lt; j &lt;&lt; <span class="hljs-string">&quot; x &quot;</span> &lt;&lt; i &lt;&lt; <span class="hljs-string">&quot; = &quot;</span> &lt;&lt; i * j &lt;&lt; <span class="hljs-string">&#x27;\t&#x27;</span>;<br>        &#125;<br>        cout &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="210"><a href="#210" class="headerlink" title="210"></a>210</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> a, b;<br>    cin &gt;&gt; a &gt;&gt; b;<br>    cout &lt;&lt; <span class="hljs-built_in">gcd</span>(a, b) &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; <span class="hljs-built_in">lcm</span>(a, b);<br>&#125;<br></code></pre></td></tr></table></figure><h2 id="第3類：函式與陣列"><a href="#第3類：函式與陣列" class="headerlink" title="第3類：函式與陣列"></a>第3類：函式與陣列</h2><h3 id="301"><a href="#301" class="headerlink" title="301"></a>301</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-comment">//compute</span><br>    <span class="hljs-keyword">int</span> a, b;<br>    cin &gt;&gt; a &gt;&gt; b;<br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; b; i++) &#123;<br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> j = <span class="hljs-number">0</span>; j &lt; a; j++) cout &lt;&lt; <span class="hljs-string">&#x27;*&#x27;</span>;<br>        cout &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>    &#125;<br>    cout &lt;&lt; a * b;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="302"><a href="#302" class="headerlink" title="302"></a>302</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-comment">//compute</span><br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br>    <br>    <span class="hljs-keyword">if</span> (n &gt; <span class="hljs-number">100</span> <span class="hljs-keyword">or</span> n &lt; <span class="hljs-number">0</span>) &#123;<br>        cout &lt;&lt; <span class="hljs-number">-1</span>;<br>        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    &#125;<br><br>    cout &lt;&lt; ((n &gt; <span class="hljs-number">60</span>) ? n + <span class="hljs-number">5</span> : n + <span class="hljs-number">10</span>);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="303"><a href="#303" class="headerlink" title="303"></a>303</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">bool</span> <span class="hljs-title">compute</span><span class="hljs-params">(<span class="hljs-keyword">int</span> n)</span> </span>&#123;<br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">2</span>; i*i &lt;= n; i++) <span class="hljs-keyword">if</span> (n % i == <span class="hljs-number">0</span>) <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br>    string s = (<span class="hljs-built_in">compute</span>(n)) ? <span class="hljs-string">&quot;&quot;</span> : <span class="hljs-string">&quot; not&quot;</span>;<br>    cout &lt;&lt; n &lt;&lt; <span class="hljs-string">&quot; is&quot;</span> &lt;&lt; s &lt;&lt; <span class="hljs-string">&quot; a prime number&quot;</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="304"><a href="#304" class="headerlink" title="304"></a>304</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-comment">//compute</span><br>    <span class="hljs-keyword">int</span> cnt = <span class="hljs-number">0</span>;<br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">6</span>; i++) &#123;<br>        <span class="hljs-keyword">int</span> x;<br>        cin &gt;&gt; x;<br>        <span class="hljs-keyword">if</span> (x % <span class="hljs-number">3</span> == <span class="hljs-number">0</span>) cnt++;<br>    &#125;<br>    cout &lt;&lt; cnt;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="305"><a href="#305" class="headerlink" title="305"></a>305</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">compute</span><span class="hljs-params">(<span class="hljs-keyword">int</span> a, <span class="hljs-keyword">int</span> b ,<span class="hljs-keyword">int</span> c)</span> </span>&#123;<br>    <span class="hljs-keyword">if</span> (c == <span class="hljs-number">1</span>) <span class="hljs-keyword">return</span> a + b;<br>    <span class="hljs-keyword">else</span> <span class="hljs-keyword">return</span> a * b;<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> a, b, c;<br>    cin &gt;&gt; a &gt;&gt; c &gt;&gt; b;<br>    cout &lt;&lt; <span class="hljs-built_in">compute</span>(a, b, c);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="306"><a href="#306" class="headerlink" title="306"></a>306</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">compute</span><span class="hljs-params">(<span class="hljs-keyword">int</span> n)</span> </span>&#123;<br>    <span class="hljs-keyword">if</span> (n == <span class="hljs-number">0</span>) <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;<br>    <span class="hljs-keyword">return</span> n * <span class="hljs-built_in">compute</span>(n - <span class="hljs-number">1</span>);<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br>    cout &lt;&lt; n &lt;&lt; <span class="hljs-string">&quot;!=&quot;</span> &lt;&lt; <span class="hljs-built_in">compute</span>(n);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="307"><a href="#307" class="headerlink" title="307"></a>307</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-comment">//compute</span><br>    <span class="hljs-keyword">int</span> n[<span class="hljs-number">5</span>];<br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">5</span>; i++) cin &gt;&gt; n[i];<br>    cout &lt;&lt; *<span class="hljs-built_in">max_element</span>(n, n+<span class="hljs-number">5</span>);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="308"><a href="#308" class="headerlink" title="308"></a>308</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">compute</span><span class="hljs-params">(<span class="hljs-keyword">int</span> n)</span> </span>&#123;<br>    <span class="hljs-keyword">if</span> (n &lt; <span class="hljs-number">2</span>) <span class="hljs-keyword">return</span> n;<br>    <span class="hljs-keyword">return</span> <span class="hljs-built_in">compute</span>(n<span class="hljs-number">-1</span>) + <span class="hljs-built_in">compute</span>(n<span class="hljs-number">-2</span>);<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br>    n++;<br>    <br>    <span class="hljs-keyword">while</span> (--n) cout &lt;&lt; <span class="hljs-string">&quot;fib(&quot;</span> &lt;&lt; n &lt;&lt; <span class="hljs-string">&quot;)=&quot;</span> &lt;&lt; <span class="hljs-built_in">compute</span>(n) &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="309"><a href="#309" class="headerlink" title="309"></a>309</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-comment">//compute</span><br>    <span class="hljs-keyword">float</span> a, b, c, d, e, f;<br>    cin &gt;&gt; a &gt;&gt; b &gt;&gt; c &gt;&gt; d &gt;&gt; e &gt;&gt; f;<br>    <span class="hljs-keyword">float</span> x = a / d, y = b / e, z = c / f;<br>    cout &lt;&lt; fixed &lt;&lt; <span class="hljs-built_in">setprecision</span>(<span class="hljs-number">3</span>) &lt;&lt; <span class="hljs-built_in">min</span>(x, <span class="hljs-built_in">min</span>(y, z));<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="310"><a href="#310" class="headerlink" title="310"></a>310</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">bool</span> <span class="hljs-title">compute</span><span class="hljs-params">(<span class="hljs-keyword">int</span> n)</span> </span>&#123;<br>    <span class="hljs-keyword">int</span> k = <span class="hljs-number">0</span>, t = n;<br>    <span class="hljs-keyword">while</span> (t &gt; <span class="hljs-number">0</span>) &#123;<br>        k++;<br>        t /= <span class="hljs-number">10</span>;<br>    &#125;<br><br>    <span class="hljs-keyword">int</span> s = <span class="hljs-number">0</span>;<br>    t = n;<br>    <span class="hljs-keyword">while</span> (t &gt; <span class="hljs-number">0</span>) &#123;<br>        s += <span class="hljs-built_in">pow</span>(t%<span class="hljs-number">10</span>, k);<br>        t /= <span class="hljs-number">10</span>;<br>    &#125;<br><br>    <span class="hljs-keyword">return</span> s == n;<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n, a = <span class="hljs-number">0</span>;<br>    cin &gt;&gt; n;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">1</span>; i &lt; n; i++)<br>        <span class="hljs-keyword">if</span> (<span class="hljs-built_in">compute</span>(i)) &#123;<br>            cout &lt;&lt; i &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>            a += i;<br>        &#125;<br><br>    cout &lt;&lt; a;<br>&#125;<br></code></pre></td></tr></table></figure><h2 id="第4類：字串與檔案處理"><a href="#第4類：字串與檔案處理" class="headerlink" title="第4類：字串與檔案處理"></a>第4類：字串與檔案處理</h2><h3 id="401"><a href="#401" class="headerlink" title="401"></a>401</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string a, b;<br>    cin &gt;&gt; a &gt;&gt; b;<br>    cout &lt;&lt; a.<span class="hljs-built_in">size</span>() &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; b.<span class="hljs-built_in">size</span>() &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; a &lt;&lt; b;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="402"><a href="#402" class="headerlink" title="402"></a>402</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string s1, s2;<br>    <span class="hljs-keyword">int</span> n;<br><br>    <span class="hljs-built_in">getline</span>(cin, s1);<br>    <span class="hljs-built_in">getline</span>(cin, s2);<br>    cin &gt;&gt; n;<br><br>    <span class="hljs-keyword">if</span> (n &gt; s1.<span class="hljs-built_in">size</span>()) &#123;<br>        cout &lt;&lt; <span class="hljs-string">&quot;error&quot;</span>;<br>        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    &#125;<br><br>    string a = s1.<span class="hljs-built_in">substr</span>(<span class="hljs-number">0</span>, n);<br>    string b = s2.<span class="hljs-built_in">substr</span>(<span class="hljs-number">0</span>, n);<br><br>    <span class="hljs-keyword">if</span> (a == b) cout &lt;&lt; s1 &lt;&lt; <span class="hljs-string">&quot; = &quot;</span> &lt;&lt; s2;<br>    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (a &lt; b) cout &lt;&lt; s1 &lt;&lt; <span class="hljs-string">&quot; &lt; &quot;</span> &lt;&lt; s2;<br>    <span class="hljs-keyword">else</span> cout &lt;&lt; s1 &lt;&lt; <span class="hljs-string">&quot; &gt; &quot;</span> &lt;&lt; s2;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="403"><a href="#403" class="headerlink" title="403"></a>403</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string s;<br>    cin &gt;&gt; s;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">char</span> &amp;c : s) &#123;<br>        <span class="hljs-keyword">if</span> (<span class="hljs-built_in">islower</span>(c)) c = <span class="hljs-built_in">toupper</span>(c);<br>        <span class="hljs-keyword">else</span> c = <span class="hljs-built_in">tolower</span>(c);<br>    &#125;<br><br>    cout &lt;&lt; s;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="404"><a href="#404" class="headerlink" title="404"></a>404</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string s;<br>    cin &gt;&gt; s;<br>    <span class="hljs-keyword">int</span> arr[<span class="hljs-number">26</span>] = &#123;<span class="hljs-number">0</span>&#125;;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">char</span> c : s) arr[c-<span class="hljs-string">&#x27;a&#x27;</span>]++;<br>    <span class="hljs-keyword">int</span> pos = <span class="hljs-built_in">max_element</span>(arr, arr+<span class="hljs-number">26</span>) - arr;<br>    cout &lt;&lt; <span class="hljs-built_in"><span class="hljs-keyword">char</span></span>(pos+<span class="hljs-string">&#x27;a&#x27;</span>) &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; arr[pos];<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="405"><a href="#405" class="headerlink" title="405"></a>405</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> a, b, c;<br>    cin &gt;&gt; a &gt;&gt; b &gt;&gt; c;<br>    <span class="hljs-function">ifstream <span class="hljs-title">in</span><span class="hljs-params">(<span class="hljs-string">&quot;read.txt&quot;</span>)</span></span>;<br>    string data[<span class="hljs-number">3</span>];<br>    in &gt;&gt; data[<span class="hljs-number">0</span>] &gt;&gt; data[<span class="hljs-number">1</span>] &gt;&gt; data[<span class="hljs-number">2</span>];<br><br>    cout &lt;&lt; <span class="hljs-built_in">string</span>(a, <span class="hljs-built_in"><span class="hljs-keyword">char</span></span>(a+<span class="hljs-string">&#x27;0&#x27;</span>)) &lt;&lt; data[<span class="hljs-number">0</span>].<span class="hljs-built_in">substr</span>(a) &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">string</span>(b, <span class="hljs-built_in"><span class="hljs-keyword">char</span></span>(b+<span class="hljs-string">&#x27;0&#x27;</span>)) &lt;&lt; data[<span class="hljs-number">1</span>].<span class="hljs-built_in">substr</span>(b) &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span><br>         &lt;&lt; <span class="hljs-built_in">string</span>(c, <span class="hljs-built_in"><span class="hljs-keyword">char</span></span>(c+<span class="hljs-string">&#x27;0&#x27;</span>)) &lt;&lt; data[<span class="hljs-number">2</span>].<span class="hljs-built_in">substr</span>(c);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="406"><a href="#406" class="headerlink" title="406"></a>406</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string lo = <span class="hljs-string">&quot;qwertyuiopasdfghjklzxcvbnm&quot;</span>;<br>    string up = <span class="hljs-string">&quot;QWERTYUIOPASDFGHJKLZXCVBNM&quot;</span>;<br><br>    string inp;<br>    cin &gt;&gt; inp;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">char</span> c : inp) &#123;<br>        <span class="hljs-keyword">if</span> (c == <span class="hljs-string">&#x27;p&#x27;</span> <span class="hljs-keyword">or</span> c == <span class="hljs-string">&#x27;l&#x27;</span> <span class="hljs-keyword">or</span> c == <span class="hljs-string">&#x27;m&#x27;</span> <span class="hljs-keyword">or</span> c == <span class="hljs-string">&#x27;P&#x27;</span> <span class="hljs-keyword">or</span> c == <span class="hljs-string">&#x27;L&#x27;</span> <span class="hljs-keyword">or</span> c == <span class="hljs-string">&#x27;M&#x27;</span>) cout &lt;&lt; c;<br>        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (<span class="hljs-built_in">islower</span>(c)) &#123;<br>            <span class="hljs-keyword">int</span> pos = lo.<span class="hljs-built_in">find</span>(c);<br>            cout &lt;&lt; lo[pos+<span class="hljs-number">1</span>];<br>        &#125;<br>        <span class="hljs-keyword">else</span> &#123;<br>            <span class="hljs-keyword">int</span> pos = up.<span class="hljs-built_in">find</span>(c);<br>            cout &lt;&lt; up[pos+<span class="hljs-number">1</span>];<br>        &#125;<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="407"><a href="#407" class="headerlink" title="407"></a>407</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-function">ifstream <span class="hljs-title">in</span><span class="hljs-params">(<span class="hljs-string">&quot;read.txt&quot;</span>)</span></span>;<br>    <span class="hljs-function">ofstream <span class="hljs-title">out</span><span class="hljs-params">(<span class="hljs-string">&quot;write.txt&quot;</span>)</span></span>;<br>    <span class="hljs-keyword">char</span> c;<br>    <span class="hljs-keyword">while</span> (in.<span class="hljs-built_in">get</span>(c)) <span class="hljs-keyword">if</span> (c != <span class="hljs-string">&#x27;*&#x27;</span>) out &lt;&lt; c;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="408"><a href="#408" class="headerlink" title="408"></a>408</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string a, b;<br>    cin &gt;&gt; a &gt;&gt; b;<br><br>    <span class="hljs-keyword">if</span> (a.<span class="hljs-built_in">size</span>() &lt; <span class="hljs-number">3</span> <span class="hljs-keyword">or</span> a.<span class="hljs-built_in">size</span>() &gt; <span class="hljs-number">20</span> <span class="hljs-keyword">or</span> b.<span class="hljs-built_in">size</span>() &lt; <span class="hljs-number">3</span> <span class="hljs-keyword">or</span> b.<span class="hljs-built_in">size</span>() &gt; <span class="hljs-number">20</span>) &#123;<br>        cout &lt;&lt; <span class="hljs-string">&quot;error&quot;</span>;<br>        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    &#125;<br><br>    string c = a + b;<br>    <span class="hljs-built_in">reverse</span>(c.<span class="hljs-built_in">begin</span>(), c.<span class="hljs-built_in">end</span>());<br><br>    cout &lt;&lt; a.<span class="hljs-built_in">size</span>() &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; b.<span class="hljs-built_in">size</span>() &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; c;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="409"><a href="#409" class="headerlink" title="409"></a>409</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-function">ifstream <span class="hljs-title">in</span><span class="hljs-params">(<span class="hljs-string">&quot;read.txt&quot;</span>)</span></span>;<br>    <span class="hljs-function">ofstream <span class="hljs-title">out</span><span class="hljs-params">(<span class="hljs-string">&quot;write.txt&quot;</span>)</span></span>;<br><br>    <span class="hljs-keyword">char</span> c;<br>    <span class="hljs-keyword">while</span> (in.<span class="hljs-built_in">get</span>(c)) out &lt;&lt; <span class="hljs-built_in"><span class="hljs-keyword">char</span></span>(c+<span class="hljs-number">2</span>);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="410"><a href="#410" class="headerlink" title="410"></a>410</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function">string <span class="hljs-title">capwords</span><span class="hljs-params">(string s)</span> </span>&#123;<br>    <span class="hljs-function">stringstream <span class="hljs-title">ss</span><span class="hljs-params">(s)</span></span>;<br>    string word;<br>    string result = <span class="hljs-string">&quot;&quot;</span>;<br><br>    <span class="hljs-keyword">while</span> (ss &gt;&gt; word) &#123;<br>        word[<span class="hljs-number">0</span>] = <span class="hljs-built_in">toupper</span>(word[<span class="hljs-number">0</span>]);<br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">1</span>; i &lt; word.<span class="hljs-built_in">size</span>(); i++) word[i] = <span class="hljs-built_in">tolower</span>(word[i]);<br><br>        <span class="hljs-keyword">if</span> (!result.<span class="hljs-built_in">empty</span>()) result += <span class="hljs-string">&quot; &quot;</span>;<br>        result += word;<br>    &#125;<br>    <span class="hljs-keyword">return</span> result;<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br>    <span class="hljs-function">ifstream <span class="hljs-title">in</span><span class="hljs-params">(<span class="hljs-string">&quot;read.txt&quot;</span>)</span></span>;<br>    <span class="hljs-function">ofstream <span class="hljs-title">out</span><span class="hljs-params">(<span class="hljs-string">&quot;write.txt&quot;</span>)</span></span>;<br>    string line;<br>    vector&lt;string&gt; lines;<br><br>    <span class="hljs-keyword">while</span> (<span class="hljs-built_in">getline</span>(in, line)) lines.<span class="hljs-built_in">push_back</span>(line);<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; n <span class="hljs-keyword">and</span> i &lt; lines.<span class="hljs-built_in">size</span>(); i++) &#123;<br>        out &lt;&lt; <span class="hljs-built_in">capwords</span>(lines[i]);<br>        <span class="hljs-keyword">if</span> (i &lt; n - <span class="hljs-number">1</span> <span class="hljs-keyword">and</span> i &lt; lines.<span class="hljs-built_in">size</span>() - <span class="hljs-number">1</span>) out &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure><h2 id="第5類：綜合應用一"><a href="#第5類：綜合應用一" class="headerlink" title="第5類：綜合應用一"></a>第5類：綜合應用一</h2><h3 id="501-字串轉換"><a href="#501-字串轉換" class="headerlink" title="501 字串轉換"></a>501 字串轉換</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string s;<br>    cin &gt;&gt; s;<br>    cout &lt;&lt; s &lt;&lt; <span class="hljs-string">&quot; change to &quot;</span> &lt;&lt; <span class="hljs-built_in">stoi</span>(s);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="502-數字相乘"><a href="#502-數字相乘" class="headerlink" title="502 數字相乘"></a>502 數字相乘</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string s;<br>    cin &gt;&gt; s;<br><br>    <span class="hljs-keyword">int</span> ans = <span class="hljs-number">1</span>;<br>    string a = <span class="hljs-string">&quot;&quot;</span>;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; s.<span class="hljs-built_in">size</span>(); i++) &#123;<br>        <span class="hljs-keyword">int</span> digit = s[i] - <span class="hljs-string">&#x27;0&#x27;</span>;<br>        ans *= digit;<br><br>        a += s[i];<br>        <span class="hljs-keyword">if</span> (i != s.<span class="hljs-built_in">size</span>() - <span class="hljs-number">1</span>) &#123;<br>            a += <span class="hljs-string">&quot;*&quot;</span>;<br>        &#125;<br>    &#125;<br><br>    cout &lt;&lt; a &lt;&lt; <span class="hljs-string">&#x27;=&#x27;</span> &lt;&lt; ans;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="503-區間運算"><a href="#503-區間運算" class="headerlink" title="503 區間運算"></a>503 區間運算</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-meta">#<span class="hljs-meta-keyword">define</span> EPS 1e-6</span><br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> a, b;<br>    cin &gt;&gt; a &gt;&gt; b;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">1</span>; i &lt; a; i++) &#123;<br>        <span class="hljs-keyword">float</span> s = <span class="hljs-built_in">sqrt</span>(i);<br>        <span class="hljs-keyword">if</span> (<span class="hljs-built_in">fabs</span>(s - <span class="hljs-built_in">floor</span>(s)) &lt; EPS) cout &lt;&lt; <span class="hljs-built_in"><span class="hljs-keyword">int</span></span>(<span class="hljs-built_in">pow</span>(s, b)) &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="504-迴文數"><a href="#504-迴文數" class="headerlink" title="504 迴文數"></a>504 迴文數</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string s;<br>    cin &gt;&gt; s;<br>    string a = s;<br>    <span class="hljs-built_in">reverse</span>(a.<span class="hljs-built_in">begin</span>(), a.<span class="hljs-built_in">end</span>());<br>    cout &lt;&lt; ((s == a) ? <span class="hljs-string">&quot;Yes&quot;</span> : <span class="hljs-string">&quot;No&quot;</span>);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="505-公式計算"><a href="#505-公式計算" class="headerlink" title="505 公式計算"></a>505 公式計算</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">float</span> a, b, c, d, e, f;<br>    cin &gt;&gt; a &gt;&gt; b &gt;&gt; c &gt;&gt; d &gt;&gt; e &gt;&gt; f;<br>    cout &lt;&lt; fixed &lt;&lt; <span class="hljs-built_in">setprecision</span>(<span class="hljs-number">2</span>) &lt;&lt; <span class="hljs-built_in">abs</span>(a) * <span class="hljs-built_in">floor</span>(b) + <span class="hljs-built_in">pow</span>(c, d) * <span class="hljs-built_in">sqrt</span>(e) + <span class="hljs-built_in">log10</span>(f);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="506-質因數分解"><a href="#506-質因數分解" class="headerlink" title="506 質因數分解"></a>506 質因數分解</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br><br>    <span class="hljs-keyword">if</span> (n &lt; <span class="hljs-number">2</span>) &#123;<br>        cout &lt;&lt; <span class="hljs-number">-1</span>;<br>        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    &#125;<br>    <br>    vector&lt;<span class="hljs-keyword">int</span>&gt; fs;<br>    <span class="hljs-keyword">while</span> (n % <span class="hljs-number">2</span> == <span class="hljs-number">0</span>) &#123;<br>        fs.<span class="hljs-built_in">push_back</span>(<span class="hljs-number">2</span>);<br>        n /= <span class="hljs-number">2</span>;<br>    &#125;<br><br>    <span class="hljs-keyword">int</span> f = <span class="hljs-number">3</span>;<br>    <span class="hljs-keyword">while</span> (f * f &lt;= n) &#123;<br>        <span class="hljs-keyword">while</span> (n % f == <span class="hljs-number">0</span>) &#123;<br>            fs.<span class="hljs-built_in">push_back</span>(f);<br>            n /= f;<br>        &#125;<br>        f += <span class="hljs-number">2</span>;<br>    &#125;<br><br>    <span class="hljs-keyword">if</span> (n &gt; <span class="hljs-number">2</span>) fs.<span class="hljs-built_in">push_back</span>(n);<br>    <br>    <span class="hljs-keyword">if</span> (fs.<span class="hljs-built_in">size</span>() == <span class="hljs-number">1</span>) cout &lt;&lt; <span class="hljs-number">-1</span>;<br>    <span class="hljs-keyword">else</span> &#123;<br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; fs.<span class="hljs-built_in">size</span>()<span class="hljs-number">-1</span>; i++) cout &lt;&lt; fs[i] &lt;&lt; <span class="hljs-string">&#x27;*&#x27;</span>;<br>        cout &lt;&lt; fs[fs.<span class="hljs-built_in">size</span>()<span class="hljs-number">-1</span>];<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="507-猜數字"><a href="#507-猜數字" class="headerlink" title="507 猜數字"></a>507 猜數字</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string s;<br>    cin &gt;&gt; s;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">3</span>; i++) &#123;<br>        <span class="hljs-keyword">int</span> a = <span class="hljs-number">0</span>, b = <span class="hljs-number">0</span>;<br>        string g;<br>        cin &gt;&gt; g;<br><br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> j = <span class="hljs-number">0</span>; j &lt; <span class="hljs-number">4</span>; j++) &#123;<br>            <span class="hljs-keyword">if</span> (s[j] == g[j]) a++;<br>            <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (<span class="hljs-built_in">count</span>(s.<span class="hljs-built_in">begin</span>(), s.<span class="hljs-built_in">end</span>(), g[j])) b++;<br>        &#125;<br><br>        cout &lt;&lt; a &lt;&lt; <span class="hljs-string">&#x27;A&#x27;</span> &lt;&lt; b &lt;&lt; <span class="hljs-string">&quot;B\n&quot;</span>;<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="508-二進位運算"><a href="#508-二進位運算" class="headerlink" title="508 二進位運算"></a>508 二進位運算</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string a, b;<br>    cin &gt;&gt; a &gt;&gt; b;<br><br>    <span class="hljs-keyword">int</span> c = <span class="hljs-built_in">stoi</span>(a, <span class="hljs-literal">nullptr</span>, <span class="hljs-number">2</span>),<br>        d = <span class="hljs-built_in">stoi</span>(b, <span class="hljs-literal">nullptr</span>, <span class="hljs-number">2</span>),<br>        s = c + d;<br><br>    cout &lt;&lt; c &lt;&lt; <span class="hljs-string">&quot; + &quot;</span> &lt;&lt; d &lt;&lt; <span class="hljs-string">&quot; = &quot;</span> &lt;&lt; s &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br><br>    <span class="hljs-keyword">if</span> (s &gt; <span class="hljs-number">255</span>) cout &lt;&lt; <span class="hljs-string">&quot;11111111&quot;</span>;<br>    <span class="hljs-keyword">else</span> &#123;<br>        string ans = bitset&lt;<span class="hljs-number">8</span>&gt;(s).<span class="hljs-built_in">to_string</span>();<br>        cout &lt;&lt; ans;<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="509-字串拆解"><a href="#509-字串拆解" class="headerlink" title="509 字串拆解"></a>509 字串拆解</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string s;<br>    cin &gt;&gt; s;<br><br>    <span class="hljs-function">stringstream <span class="hljs-title">ss</span><span class="hljs-params">(s)</span></span>;<br>    string part;<br><br>    vector&lt;<span class="hljs-keyword">int</span>&gt; nums;<br>    <span class="hljs-keyword">int</span> sum = <span class="hljs-number">0</span>;<br><br>    <span class="hljs-keyword">while</span> (<span class="hljs-built_in">getline</span>(ss, part, <span class="hljs-string">&#x27;/&#x27;</span>)) &#123;<br>        <span class="hljs-keyword">int</span> x = <span class="hljs-built_in">stoi</span>(part);<br>        nums.<span class="hljs-built_in">push_back</span>(x);<br>        sum += x;<br>    &#125;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; nums.<span class="hljs-built_in">size</span>(); i++) &#123;<br>        <span class="hljs-keyword">if</span> (i) cout &lt;&lt; <span class="hljs-string">&#x27; &#x27;</span>;<br>        cout &lt;&lt; nums[i];<br>    &#125;<br><br>    cout &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; sum;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="510-星號輸出"><a href="#510-星號輸出" class="headerlink" title="510 星號輸出"></a>510 星號輸出</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> h, w;<br>    cin &gt;&gt; h &gt;&gt; w;<br><br>    vector&lt;vector&lt;<span class="hljs-keyword">int</span>&gt;&gt; <span class="hljs-built_in">m</span>(h, vector&lt;<span class="hljs-keyword">int</span>&gt;(w));<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; h; i++) &#123;<br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> j = <span class="hljs-number">0</span>; j &lt; w; j++) &#123;<br>            cin &gt;&gt; m[i][j];<br>        &#125;<br>    &#125;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; h; i++) &#123;<br>        string ans = <span class="hljs-string">&quot;&quot;</span>;<br><br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> j = <span class="hljs-number">0</span>; j &lt; w; j++) &#123;<br>            <span class="hljs-keyword">if</span> (m[i][j] == <span class="hljs-number">0</span>) ans += <span class="hljs-string">&#x27; &#x27;</span>;<br>            <span class="hljs-keyword">else</span> &#123;<br>                <span class="hljs-keyword">if</span> (i == <span class="hljs-number">0</span> <span class="hljs-keyword">or</span> j == <span class="hljs-number">0</span> <span class="hljs-keyword">or</span> i == h - <span class="hljs-number">1</span> <span class="hljs-keyword">or</span> j == w - <span class="hljs-number">1</span>) ans += <span class="hljs-string">&#x27;*&#x27;</span>;<br>                <span class="hljs-keyword">else</span> &#123;<br>                    <span class="hljs-keyword">if</span> (m[i - <span class="hljs-number">1</span>][j] == <span class="hljs-number">0</span> <span class="hljs-keyword">or</span><br>                        m[i][j - <span class="hljs-number">1</span>] == <span class="hljs-number">0</span> <span class="hljs-keyword">or</span><br>                        m[i + <span class="hljs-number">1</span>][j] == <span class="hljs-number">0</span> <span class="hljs-keyword">or</span><br>                        m[i][j + <span class="hljs-number">1</span>] == <span class="hljs-number">0</span>) &#123;<br>                        ans += <span class="hljs-string">&#x27;*&#x27;</span>;<br>                    &#125;<br>                    <span class="hljs-keyword">else</span> ans += <span class="hljs-string">&#x27; &#x27;</span>;<br>                &#125;<br>            &#125;<br>        &#125;<br><br>        cout &lt;&lt; ans &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure><h2 id="第6類：綜合應用二"><a href="#第6類：綜合應用二" class="headerlink" title="第6類：綜合應用二"></a>第6類：綜合應用二</h2><h3 id="601-大小寫轉換"><a href="#601-大小寫轉換" class="headerlink" title="601 大小寫轉換"></a>601 大小寫轉換</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string s;<br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; s &gt;&gt; n;<br>    <span class="hljs-keyword">char</span> &amp;c = s[n];<br><br>    <span class="hljs-keyword">if</span> (<span class="hljs-string">&#x27;a&#x27;</span> &lt;= c <span class="hljs-keyword">and</span> c &lt;= <span class="hljs-string">&#x27;z&#x27;</span>) c -= <span class="hljs-string">&#x27;a&#x27;</span> - <span class="hljs-string">&#x27;A&#x27;</span>;<br>    <span class="hljs-keyword">else</span> c += <span class="hljs-string">&#x27;a&#x27;</span> - <span class="hljs-string">&#x27;A&#x27;</span>;<br><br>    cout &lt;&lt; <span class="hljs-string">&quot;The letter that was selected is: &quot;</span> &lt;&lt; c &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; s;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="602-字串拆解"><a href="#602-字串拆解" class="headerlink" title="602 字串拆解"></a>602 字串拆解</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string s, cap, let;<br>    cin &gt;&gt; s;<br>    <br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">char</span> c : s) &#123;<br>        <span class="hljs-keyword">if</span> (<span class="hljs-string">&#x27;a&#x27;</span> &lt;= c <span class="hljs-keyword">and</span> c &lt;= <span class="hljs-string">&#x27;z&#x27;</span>) let.<span class="hljs-built_in">push_back</span>(c);<br>        <span class="hljs-keyword">else</span> cap.<span class="hljs-built_in">push_back</span>(c);<br>    &#125;<br><br>    cout &lt;&lt; cap &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; let &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span> &lt;&lt; cap.<span class="hljs-built_in">size</span>();<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="603-多重迴圈"><a href="#603-多重迴圈" class="headerlink" title="603 多重迴圈"></a>603 多重迴圈</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n, m;<br>    cin &gt;&gt; n &gt;&gt; m;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; n; i++) &#123;<br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> j = <span class="hljs-number">0</span>; j &lt; m - <span class="hljs-number">1</span>; j++) &#123;<br>            <span class="hljs-keyword">int</span> x;<br>            cin &gt;&gt; x;<br>            cout &lt;&lt; x &lt;&lt; <span class="hljs-string">&#x27;,&#x27;</span>;<br>        &#125;<br><br>        <span class="hljs-keyword">int</span> x;<br>        cin &gt;&gt; x;<br>        cout &lt;&lt; x &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="604-選擇排序"><a href="#604-選擇排序" class="headerlink" title="604 選擇排序"></a>604 選擇排序</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    multiset&lt;<span class="hljs-keyword">int</span>&gt; s;<br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">9</span>; i++) &#123;<br>        <span class="hljs-keyword">int</span> x;<br>        cin &gt;&gt; x;<br>        s.<span class="hljs-built_in">insert</span>(x);<br>    &#125;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">auto</span> pt : s) cout &lt;&lt; pt &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>    cout &lt;&lt; <span class="hljs-string">&quot;sum = &quot;</span> &lt;&lt; <span class="hljs-built_in">accumulate</span>(s.<span class="hljs-built_in">begin</span>(), s.<span class="hljs-built_in">end</span>(), <span class="hljs-number">0</span>);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="605-差值計算"><a href="#605-差值計算" class="headerlink" title="605 差值計算"></a>605 差值計算</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> arr[<span class="hljs-number">6</span>];<br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">6</span>; i++) cin &gt;&gt; arr[i];<br>    <span class="hljs-built_in">sort</span>(arr, arr+<span class="hljs-number">6</span>);<br>    cout &lt;&lt; (arr[<span class="hljs-number">3</span>]+arr[<span class="hljs-number">4</span>]+arr[<span class="hljs-number">5</span>]) - (arr[<span class="hljs-number">0</span>]+arr[<span class="hljs-number">1</span>]+arr[<span class="hljs-number">2</span>]);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="606-檢驗學號"><a href="#606-檢驗學號" class="headerlink" title="606 檢驗學號"></a>606 檢驗學號</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">3</span>; i++) &#123;<br>        string s;<br>        cin &gt;&gt; s;<br>        <span class="hljs-keyword">int</span> a = s[<span class="hljs-number">0</span>] - <span class="hljs-string">&#x27;0&#x27;</span>,<br>            b = s[<span class="hljs-number">1</span>] - <span class="hljs-string">&#x27;0&#x27;</span>,<br>            c = s[<span class="hljs-number">2</span>] - <span class="hljs-string">&#x27;0&#x27;</span>,<br>            d = s[<span class="hljs-number">3</span>] - <span class="hljs-string">&#x27;0&#x27;</span>,<br>            e = s[<span class="hljs-number">4</span>] - <span class="hljs-string">&#x27;0&#x27;</span>;<br>        <span class="hljs-keyword">char</span> f = s[<span class="hljs-number">5</span>];<br><br>        <span class="hljs-keyword">char</span> check = ((a+c+e)+(b+d)*<span class="hljs-number">5</span> - <span class="hljs-number">1</span>) % <span class="hljs-number">26</span> + <span class="hljs-string">&#x27;A&#x27;</span>;<br>        cout &lt;&lt; ((check == f) ? <span class="hljs-string">&quot;Pass&quot;</span> : <span class="hljs-string">&quot;Fail&quot;</span>) &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="607-撲克排比大小"><a href="#607-撲克排比大小" class="headerlink" title="607 撲克排比大小"></a>607 撲克排比大小</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">value</span><span class="hljs-params">(<span class="hljs-keyword">char</span> c)</span> </span>&#123;<br>    string cmp = <span class="hljs-string">&quot;CDHS&quot;</span>;<br>    <span class="hljs-keyword">return</span> cmp.<span class="hljs-built_in">find</span>(c);<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string a, b;<br>    cin &gt;&gt; a &gt;&gt; b;<br><br>    <span class="hljs-keyword">if</span> (a == b) cout &lt;&lt; a &lt;&lt; <span class="hljs-string">&quot; = &quot;</span> &lt;&lt; b;<br>    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (a[<span class="hljs-number">0</span>] == b[<span class="hljs-number">0</span>]) &#123;<br>        <span class="hljs-keyword">int</span> x = <span class="hljs-built_in">stoi</span>(a.<span class="hljs-built_in">substr</span>(<span class="hljs-number">1</span>)),<br>            y = <span class="hljs-built_in">stoi</span>(b.<span class="hljs-built_in">substr</span>(<span class="hljs-number">1</span>));<br>        <br>        cout &lt;&lt; a &lt;&lt; ((x &gt; y) ? <span class="hljs-string">&quot; &gt; &quot;</span> : <span class="hljs-string">&quot; &lt; &quot;</span>) &lt;&lt; b;<br>    &#125; <span class="hljs-keyword">else</span> cout &lt;&lt; a &lt;&lt; ((<span class="hljs-built_in">value</span>(a[<span class="hljs-number">0</span>]) &gt; <span class="hljs-built_in">value</span>(b[<span class="hljs-number">0</span>])) ? <span class="hljs-string">&quot; &gt; &quot;</span> : <span class="hljs-string">&quot; &lt; &quot;</span>) &lt;&lt; b;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="608-棒球計分"><a href="#608-棒球計分" class="headerlink" title="608 棒球計分"></a>608 棒球計分</h3><p>假解</p><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> sum = <span class="hljs-number">0</span>;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">10</span>; i++) &#123;<br>        <span class="hljs-keyword">int</span> x;<br>        cin &gt;&gt; x;<br>        sum += x;<br>    &#125;<br><br>    cout &lt;&lt; <span class="hljs-string">&quot;score = &quot;</span> &lt;&lt; sum % <span class="hljs-number">10</span>;<br>&#125;<br></code></pre></td></tr></table></figure>    <div class="fold">      <div class="fold-title fold-default collapsed" data-toggle="collapse" href="#collapse-40656943" role="button" aria-expanded="false" aria-controls="collapse-40656943">        <div class="fold-arrow">▶</div>假解的定義      </div>      <div class="fold-collapse collapse" id="collapse-40656943">        <div class="fold-content">          <p>假解指的是剛好可以通過測資 但不正確的寫法<br>也就是沒有按題目的邏輯去寫 只是剛好系統放的測資用這個程式跑得過<br>這題假解就是這種情況 剛好跑得過這個網站的所有測資 但其實根本不是這樣解的<br>由於我不確定最後TQC+測驗會不會用相同測資 因此為求保險 建議還是要理解一下真解的概念</p>         </div>      </div>    </div><p>真解</p><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">bool</span> base[<span class="hljs-number">3</span>] = &#123;<span class="hljs-number">0</span>&#125;; <span class="hljs-comment">// &#123;一壘, 二壘, 三壘&#125;</span><br>    <span class="hljs-keyword">int</span> score = <span class="hljs-number">0</span>;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">10</span>; i++) &#123;<br>        <span class="hljs-keyword">int</span> hit;<br>        cin &gt;&gt; hit;<br><br>        <span class="hljs-keyword">if</span> (hit == <span class="hljs-number">0</span>) <span class="hljs-keyword">continue</span>;<br>        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (hit == <span class="hljs-number">1</span>) &#123;<br>            <span class="hljs-keyword">if</span> (base[<span class="hljs-number">2</span>]) score++;<br><br>            base[<span class="hljs-number">2</span>] = base[<span class="hljs-number">1</span>];<br>            base[<span class="hljs-number">1</span>] = base[<span class="hljs-number">0</span>];<br>            base[<span class="hljs-number">0</span>] = <span class="hljs-number">1</span>;<br>        &#125; <br>        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (hit == <span class="hljs-number">2</span>) &#123;<br>            <span class="hljs-keyword">if</span> (base[<span class="hljs-number">2</span>]) score++;<br>            <span class="hljs-keyword">if</span> (base[<span class="hljs-number">1</span>]) score++;<br><br>            base[<span class="hljs-number">2</span>] = base[<span class="hljs-number">0</span>];<br>            base[<span class="hljs-number">1</span>] = <span class="hljs-number">1</span>;<br>            base[<span class="hljs-number">0</span>] = <span class="hljs-number">0</span>;<br>        &#125; <br>        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (hit == <span class="hljs-number">3</span>) &#123;<br>            score += base[<span class="hljs-number">0</span>] + base[<span class="hljs-number">1</span>] + base[<span class="hljs-number">2</span>];<br><br>            base[<span class="hljs-number">0</span>] = <span class="hljs-number">0</span>;<br>            base[<span class="hljs-number">1</span>] = <span class="hljs-number">0</span>;<br>            base[<span class="hljs-number">2</span>] = <span class="hljs-number">1</span>;<br>        &#125; <br>        <span class="hljs-keyword">else</span> &#123;<br>            score += base[<span class="hljs-number">0</span>] + base[<span class="hljs-number">1</span>] + base[<span class="hljs-number">2</span>] + <span class="hljs-number">1</span>;<br><br>            base[<span class="hljs-number">0</span>] = <span class="hljs-number">0</span>;<br>            base[<span class="hljs-number">1</span>] = <span class="hljs-number">0</span>;<br>            base[<span class="hljs-number">2</span>] = <span class="hljs-number">0</span>;<br>        &#125;<br>    &#125;<br><br>    cout &lt;&lt; <span class="hljs-string">&quot;score = &quot;</span> &lt;&lt; score;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="609-閏年"><a href="#609-閏年" class="headerlink" title="609 閏年"></a>609 閏年</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">bool</span> <span class="hljs-title">leap</span><span class="hljs-params">(<span class="hljs-keyword">int</span> y)</span> </span>&#123;<br>    <span class="hljs-keyword">if</span> (y % <span class="hljs-number">400</span> == <span class="hljs-number">0</span>) <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;<br>    <span class="hljs-keyword">if</span> (y % <span class="hljs-number">100</span> == <span class="hljs-number">0</span>) <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    <span class="hljs-keyword">if</span> (y % <span class="hljs-number">4</span> == <span class="hljs-number">0</span>) <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;<br>    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>&#125;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> y, m, d;<br>    cin &gt;&gt; y &gt;&gt; m &gt;&gt; d;<br>    <span class="hljs-keyword">int</span> days[] = &#123;<span class="hljs-number">0</span>, <span class="hljs-number">31</span>, <span class="hljs-number">28</span>, <span class="hljs-number">31</span>, <span class="hljs-number">30</span>, <span class="hljs-number">31</span>, <span class="hljs-number">30</span>, <span class="hljs-number">31</span>, <span class="hljs-number">31</span>, <span class="hljs-number">30</span>, <span class="hljs-number">31</span>, <span class="hljs-number">30</span>, <span class="hljs-number">31</span>&#125;;<br><br>    <span class="hljs-keyword">if</span> (y &lt;= <span class="hljs-number">0</span> <span class="hljs-keyword">or</span> m &lt; <span class="hljs-number">1</span> <span class="hljs-keyword">or</span> m &gt; <span class="hljs-number">12</span>) &#123;<br>        cout &lt;&lt; <span class="hljs-string">&quot;error&quot;</span>;<br>        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    &#125;<br><br>    <span class="hljs-keyword">if</span> (<span class="hljs-built_in">leap</span>(y)) days[<span class="hljs-number">2</span>] = <span class="hljs-number">29</span>;<br>    <br><br>    <span class="hljs-keyword">if</span> (d &lt; <span class="hljs-number">1</span> <span class="hljs-keyword">or</span> d &gt; days[m]) &#123;<br>        cout &lt;&lt; <span class="hljs-string">&quot;error&quot;</span>;<br>        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    &#125;<br><br>    <span class="hljs-keyword">int</span> ans = <span class="hljs-number">0</span>;<br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">1</span>; i &lt; m; i++) ans += days[i];<br><br>    cout &lt;&lt; ans + d;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="610-矩陣乘積"><a href="#610-矩陣乘積" class="headerlink" title="610 矩陣乘積"></a>610 矩陣乘積</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> m, n;<br>    cin &gt;&gt; m &gt;&gt; n;<br><br>    vector&lt;vector&lt;<span class="hljs-keyword">int</span>&gt;&gt; <span class="hljs-built_in">a</span>(m, vector&lt;<span class="hljs-keyword">int</span>&gt;(n));<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; m; i++)<br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> j = <span class="hljs-number">0</span>; j &lt; n; j++)<br>            cin &gt;&gt; a[i][j];<br><br>    <span class="hljs-keyword">int</span> p, q;<br>    cin &gt;&gt; p &gt;&gt; q;<br><br>    vector&lt;vector&lt;<span class="hljs-keyword">int</span>&gt;&gt; <span class="hljs-built_in">b</span>(p, vector&lt;<span class="hljs-keyword">int</span>&gt;(q));<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; p; i++)<br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> j = <span class="hljs-number">0</span>; j &lt; q; j++)<br>            cin &gt;&gt; b[i][j];<br><br>    <span class="hljs-comment">// A 是 m*n，B 是 p*q</span><br>    <span class="hljs-comment">// 矩陣可相乘的條件：n == p</span><br>    <span class="hljs-keyword">if</span> (n != p) &#123;<br>        cout &lt;&lt; <span class="hljs-string">&quot;error&quot;</span>;<br>        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>    &#125;<br><br>    vector&lt;vector&lt;<span class="hljs-keyword">int</span>&gt;&gt; <span class="hljs-built_in">ans</span>(m, vector&lt;<span class="hljs-keyword">int</span>&gt;(q, <span class="hljs-number">0</span>));<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; m; i++) &#123;<br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> j = <span class="hljs-number">0</span>; j &lt; q; j++) &#123;<br>            <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> k = <span class="hljs-number">0</span>; k &lt; n; k++) &#123;<br>                ans[i][j] += a[i][k] * b[k][j];<br>            &#125;<br>        &#125;<br>    &#125;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; m; i++) &#123;<br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> j = <span class="hljs-number">0</span>; j &lt; q; j++) &#123;<br>            <span class="hljs-keyword">if</span> (j) cout &lt;&lt; <span class="hljs-string">&#x27; &#x27;</span>;<br>            cout &lt;&lt; ans[i][j];<br>        &#125;<br>        cout &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure><h2 id="第7類：綜合應用三"><a href="#第7類：綜合應用三" class="headerlink" title="第7類：綜合應用三"></a>第7類：綜合應用三</h2><h3 id="701-海龍公式"><a href="#701-海龍公式" class="headerlink" title="701 海龍公式"></a>701 海龍公式</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> a, b, c;<br>    cin &gt;&gt; a &gt;&gt; b &gt;&gt; c;<br>    <span class="hljs-keyword">float</span> s = (a+b+c) / <span class="hljs-number">2.0</span>;<br>    cout &lt;&lt; fixed &lt;&lt; <span class="hljs-built_in">setprecision</span>(<span class="hljs-number">2</span>) &lt;&lt; <span class="hljs-built_in">sqrt</span>(s * (s-a) * (s-b) * (s-c));<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="702-二進位轉十進位"><a href="#702-二進位轉十進位" class="headerlink" title="702 二進位轉十進位"></a>702 二進位轉十進位</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    string s;<br>    cin &gt;&gt; s;<br>    cout &lt;&lt; <span class="hljs-built_in">stoi</span>(s, <span class="hljs-literal">nullptr</span>, <span class="hljs-number">2</span>);<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="703-找零錢"><a href="#703-找零錢" class="headerlink" title="703 找零錢"></a>703 找零錢</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br><br>    <span class="hljs-keyword">if</span> (n &gt;= <span class="hljs-number">50</span>) &#123;<br>        cout &lt;&lt; n / <span class="hljs-number">50</span> &lt;&lt; <span class="hljs-string">&quot;*$50 &quot;</span>;<br>        n %= <span class="hljs-number">50</span>;<br>    &#125;<br>    <span class="hljs-keyword">if</span> (n &gt;= <span class="hljs-number">10</span>) &#123;<br>        cout &lt;&lt; n / <span class="hljs-number">10</span> &lt;&lt; <span class="hljs-string">&quot;*$10 &quot;</span>;<br>        n %= <span class="hljs-number">10</span>;<br>    &#125;<br>    <span class="hljs-keyword">if</span> (n &gt;= <span class="hljs-number">5</span>) &#123;<br>        cout &lt;&lt; n / <span class="hljs-number">5</span> &lt;&lt; <span class="hljs-string">&quot;*$5 &quot;</span>;<br>        n %= <span class="hljs-number">5</span>;<br>    &#125;<br><br>    cout &lt;&lt; n &lt;&lt; <span class="hljs-string">&quot;*$1&quot;</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="704-過半數"><a href="#704-過半數" class="headerlink" title="704 過半數"></a>704 過半數</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> t;<br>    cin &gt;&gt; t;<br><br>    unordered_map&lt;<span class="hljs-keyword">int</span>, <span class="hljs-keyword">int</span>&gt; cnt;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; t; i++) &#123;<br>        <span class="hljs-keyword">int</span> x;<br>        cin &gt;&gt; x;<br>        cnt[x]++;<br>    &#125;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">auto</span> [k, v] : cnt) &#123;<br>        <span class="hljs-keyword">if</span> (v * <span class="hljs-number">2</span> &gt; t) &#123;<br>            cout &lt;&lt; k;<br>            <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>        &#125;<br>    &#125;<br><br>    cout &lt;&lt; <span class="hljs-string">&quot;error&quot;</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="705-庫存函數"><a href="#705-庫存函數" class="headerlink" title="705 庫存函數"></a>705 庫存函數</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    unordered_map&lt;string, <span class="hljs-keyword">int</span>&gt; ar;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">3</span>; i++) &#123;<br>        string k;<br>        <span class="hljs-keyword">int</span> v;<br>        cin &gt;&gt; k &gt;&gt; v;<br>        ar[k] = v;<br>    &#125;<br><br>    <span class="hljs-keyword">int</span> t = <span class="hljs-number">0</span>;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">5</span>; i++) &#123;<br>        string s;<br>        cin &gt;&gt; s;<br>        <span class="hljs-keyword">if</span> (ar.<span class="hljs-built_in">count</span>(s)) t += ar[s];<br>    &#125;<br><br>    cout &lt;&lt; t;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="706-整數檔案讀寫"><a href="#706-整數檔案讀寫" class="headerlink" title="706 整數檔案讀寫"></a>706 整數檔案讀寫</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    vector&lt;<span class="hljs-keyword">int</span>&gt; arr;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">4</span>; i++) &#123;<br>        <span class="hljs-keyword">int</span> x;<br>        cin &gt;&gt; x;<br>        arr.<span class="hljs-built_in">push_back</span>(x);<br>    &#125;<br><br>    <span class="hljs-function">ifstream <span class="hljs-title">in</span><span class="hljs-params">(<span class="hljs-string">&quot;read.txt&quot;</span>)</span></span>;<br>    <span class="hljs-function">ofstream <span class="hljs-title">out</span><span class="hljs-params">(<span class="hljs-string">&quot;write.txt&quot;</span>)</span></span>;<br><br>    <span class="hljs-keyword">int</span> x;<br>    <span class="hljs-keyword">while</span> (in &gt;&gt; x) arr.<span class="hljs-built_in">push_back</span>(x);    <br><br>    <span class="hljs-built_in">sort</span>(arr.<span class="hljs-built_in">begin</span>(), arr.<span class="hljs-built_in">end</span>());<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> n : arr) out &lt;&lt; n &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="707-動態記憶體配置"><a href="#707-動態記憶體配置" class="headerlink" title="707 動態記憶體配置"></a>707 動態記憶體配置</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br><br>    vector&lt;pair&lt;<span class="hljs-keyword">int</span>, string&gt;&gt; arr;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; n; i++) &#123;<br>        <span class="hljs-keyword">int</span> a, b;<br>        cin &gt;&gt; a &gt;&gt; b;<br><br>        <span class="hljs-keyword">int</span> p = a * b;<br>        string s = <span class="hljs-built_in">to_string</span>(a) + <span class="hljs-string">&quot;x&quot;</span> + <span class="hljs-built_in">to_string</span>(b) + <span class="hljs-string">&quot;=&quot;</span>;<br><br>        arr.<span class="hljs-built_in">push_back</span>(&#123;p, s&#125;);<br>    &#125;<br><br>    <span class="hljs-built_in">sort</span>(arr.<span class="hljs-built_in">begin</span>(), arr.<span class="hljs-built_in">end</span>());<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">auto</span> p : arr) cout &lt;&lt; p.second &lt;&lt; p.first &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="708-12小時制時間"><a href="#708-12小時制時間" class="headerlink" title="708 12小時制時間"></a>708 12小時制時間</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> c = <span class="hljs-number">0</span>;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">3</span>; i++) &#123;<br>        <span class="hljs-keyword">int</span> h, m;<br>        cin &gt;&gt; h &gt;&gt; m;<br><br>        <span class="hljs-keyword">if</span> (h == <span class="hljs-number">0</span>) &#123;<br>            cout &lt;&lt; <span class="hljs-string">&quot;AM 12:&quot;</span> &lt;&lt; m &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>            c++;<br>        &#125; <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (h &lt; <span class="hljs-number">12</span>) &#123;<br>            cout &lt;&lt; <span class="hljs-string">&quot;AM &quot;</span> &lt;&lt; h &lt;&lt; <span class="hljs-string">&quot;:&quot;</span> &lt;&lt; m &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>            c++;<br>        &#125; <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (h == <span class="hljs-number">12</span>) &#123;<br>            cout &lt;&lt; <span class="hljs-string">&quot;PM &quot;</span> &lt;&lt; h &lt;&lt; <span class="hljs-string">&quot;:&quot;</span> &lt;&lt; m &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>        &#125; <span class="hljs-keyword">else</span> &#123;<br>            cout &lt;&lt; <span class="hljs-string">&quot;PM &quot;</span> &lt;&lt; h - <span class="hljs-number">12</span> &lt;&lt; <span class="hljs-string">&quot;:&quot;</span> &lt;&lt; m &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>        &#125;<br>    &#125;<br><br>    cout &lt;&lt; c;<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="709-圓面積計算"><a href="#709-圓面積計算" class="headerlink" title="709 圓面積計算"></a>709 圓面積計算</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> n;<br>    cin &gt;&gt; n;<br>    <span class="hljs-keyword">float</span> area = <span class="hljs-number">0</span>;<br>    <span class="hljs-keyword">int</span> biggest[<span class="hljs-number">3</span>] = &#123;<span class="hljs-number">0</span>&#125;; <span class="hljs-comment">// x, y, r</span><br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; n; i++) &#123;<br>        <span class="hljs-keyword">int</span> x, y, r;<br>        cin &gt;&gt; x &gt;&gt; y &gt;&gt; r;<br><br>        area += r * r * <span class="hljs-number">3.14159</span>;<br><br>        <span class="hljs-keyword">if</span> (r &gt; biggest[<span class="hljs-number">2</span>]) &#123;<br>            biggest[<span class="hljs-number">0</span>] = x;<br>            biggest[<span class="hljs-number">1</span>] = y;<br>            biggest[<span class="hljs-number">2</span>] = r;<br>        &#125;<br>    &#125;<br><br>    cout &lt;&lt; fixed &lt;&lt; <span class="hljs-built_in">setprecision</span>(<span class="hljs-number">2</span>) &lt;&lt; <span class="hljs-string">&quot;Sum = &quot;</span> &lt;&lt; area<br>         &lt;&lt; <span class="hljs-string">&quot;\nx: &quot;</span> &lt;&lt; biggest[<span class="hljs-number">0</span>] &lt;&lt; <span class="hljs-string">&quot;, y: &quot;</span> &lt;&lt; biggest[<span class="hljs-number">1</span>]<br>         &lt;&lt; <span class="hljs-string">&quot;\nradius: &quot;</span> &lt;&lt; biggest[<span class="hljs-number">2</span>];<br>&#125;<br></code></pre></td></tr></table></figure><h3 id="710-FIFO分頁替換演算法"><a href="#710-FIFO分頁替換演算法" class="headerlink" title="710 FIFO分頁替換演算法"></a>710 FIFO分頁替換演算法</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><code class="hljs cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;bits/stdc++.h&gt;</span></span><br><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> std;<br><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    ios::<span class="hljs-built_in">sync_with_stdio</span>(<span class="hljs-number">0</span>), cin.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>), cout.<span class="hljs-built_in">tie</span>(<span class="hljs-number">0</span>);<br><br>    <span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>, arr[<span class="hljs-number">4</span>] = &#123;<span class="hljs-number">0</span>&#125;;<br><br>    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> j = <span class="hljs-number">0</span>; j &lt; <span class="hljs-number">10</span>; j++) &#123;<br>        <span class="hljs-keyword">int</span> data;<br>        cin &gt;&gt; data;<br><br>        <span class="hljs-keyword">if</span> (<span class="hljs-built_in">find</span>(arr, arr + <span class="hljs-number">4</span>, data) == arr + <span class="hljs-number">4</span>) &#123; <span class="hljs-comment">// data not in arr</span><br>            arr[i] = data;<br>            i = (i + <span class="hljs-number">1</span>) % <span class="hljs-number">4</span>;<br>        &#125;<br><br>        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> k = <span class="hljs-number">0</span>; k &lt; <span class="hljs-number">4</span>; k++) cout &lt;&lt; arr[k] &lt;&lt; <span class="hljs-string">&#x27; &#x27;</span>;<br>        cout &lt;&lt; <span class="hljs-string">&#x27;\n&#x27;</span>;<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure>]]>
    </content>
    <id>https://chuen666666.com/TQC-%E9%A1%8C%E5%BA%AB%E3%80%8C%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80%EF%BC%88%E7%AC%AC%E4%BA%8C%E7%89%88%EF%BC%89%E3%80%8D%E2%80%94%E2%80%94Cpp%E9%A1%8C%E8%A7%A3/</id>
    <link href="https://chuen666666.com/TQC-%E9%A1%8C%E5%BA%AB%E3%80%8C%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80%EF%BC%88%E7%AC%AC%E4%BA%8C%E7%89%88%EF%BC%89%E3%80%8D%E2%80%94%E2%80%94Cpp%E9%A1%8C%E8%A7%A3/"/>
    <published>2026-05-09T18:37:09.000Z</published>
    <summary>TQC+ 在 Code Judger 題庫的「程式語言（第二版）」的 C++ 解</summary>
    <title>TQC+ 題庫「程式語言（第二版）」—— C++ 題解</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="程式" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/"/>
    <category term="競程" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/%E7%AB%B6%E7%A8%8B/"/>
    <category term="筆記" scheme="https://chuen666666.com/tags/%E7%AD%86%E8%A8%98/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="題解" scheme="https://chuen666666.com/tags/%E9%A1%8C%E8%A7%A3/"/>
    <category term="競程" scheme="https://chuen666666.com/tags/%E7%AB%B6%E7%A8%8B/"/>
    <category term="TQC+" scheme="https://chuen666666.com/tags/TQC/"/>
    <category term="Code Judger" scheme="https://chuen666666.com/tags/Code-Judger/"/>
    <category term="Python" scheme="https://chuen666666.com/tags/Python/"/>
    <content>
      <![CDATA[<p>由於題目可能涉及著作權等問題，此篇僅提供可 AC 的程式碼，相關題目內容請自行至 <a href="https://www.codejudger.com/groups/4534/tqc">Code Judger</a> 的<strong>程式語言（第二版）</strong>登入後閱覽（可使用學校的酷課雲帳號登入）。</p><a class="btn" href="/TQC-題庫「程式語言（第二版）」——Cpp題解"  target="_blank">TQC+ 題庫「程式語言（第二版）」——C++ 題解</a><h2 id="第1類：基本認識"><a href="#第1類：基本認識" class="headerlink" title="第1類：基本認識"></a>第1類：基本認識</h2><h3 id="101"><a href="#101" class="headerlink" title="101"></a>101</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-built_in">print</span>(<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()) + <span class="hljs-number">9</span>)<br></code></pre></td></tr></table></figure><h3 id="102"><a href="#102" class="headerlink" title="102"></a>102</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())*<span class="hljs-number">23.34</span>:<span class="hljs-number">.2</span>f&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="103"><a href="#103" class="headerlink" title="103"></a>103</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs py">a, b, c = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;a&#125;</span>+<span class="hljs-subst">&#123;b&#125;</span>+<span class="hljs-subst">&#123;c&#125;</span>=<span class="hljs-subst">&#123;a+b+c&#125;</span>\n<span class="hljs-subst">&#123;(a+b+c)/<span class="hljs-number">3</span>:<span class="hljs-number">.2</span>f&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="104"><a href="#104" class="headerlink" title="104"></a>104</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;total=<span class="hljs-subst">&#123;<span class="hljs-built_in">float</span>(<span class="hljs-built_in">input</span>())+<span class="hljs-built_in">float</span>(<span class="hljs-built_in">input</span>()):<span class="hljs-number">.2</span>f&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="105"><a href="#105" class="headerlink" title="105"></a>105</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;result=<span class="hljs-subst">&#123;(<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())+<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()))**<span class="hljs-number">0.5</span>:<span class="hljs-number">.2</span>f&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="106"><a href="#106" class="headerlink" title="106"></a>106</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs py">x1, y1, x2, y2 = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;((x2-x1)**<span class="hljs-number">2</span>+(y2-y1)**<span class="hljs-number">2</span>)**<span class="hljs-number">0.5</span>:<span class="hljs-number">.2</span>f&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="107"><a href="#107" class="headerlink" title="107"></a>107</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs py">a, b, c, d, e, f = <span class="hljs-built_in">input</span>(), <span class="hljs-built_in">input</span>(), <span class="hljs-built_in">input</span>(), <span class="hljs-built_in">input</span>(), <span class="hljs-built_in">input</span>(), <span class="hljs-built_in">input</span>()<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;a:&gt;<span class="hljs-number">10</span>&#125;</span> <span class="hljs-subst">&#123;b:&gt;<span class="hljs-number">10</span>&#125;</span> <span class="hljs-subst">&#123;c:&gt;<span class="hljs-number">10</span>&#125;</span>\n<span class="hljs-subst">&#123;d:&gt;<span class="hljs-number">10</span>&#125;</span> <span class="hljs-subst">&#123;e:&gt;<span class="hljs-number">10</span>&#125;</span> <span class="hljs-subst">&#123;f:&gt;<span class="hljs-number">10</span>&#125;</span>\n<span class="hljs-subst">&#123;a:&lt;<span class="hljs-number">10</span>&#125;</span> <span class="hljs-subst">&#123;b:&lt;<span class="hljs-number">10</span>&#125;</span> <span class="hljs-subst">&#123;c:&lt;<span class="hljs-number">10</span>&#125;</span>\n<span class="hljs-subst">&#123;d:&lt;<span class="hljs-number">10</span>&#125;</span> <span class="hljs-subst">&#123;e:&lt;<span class="hljs-number">10</span>&#125;</span> <span class="hljs-subst">&#123;f:&lt;<span class="hljs-number">10</span>&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="108"><a href="#108" class="headerlink" title="108"></a>108</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs py">rr = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>r = rr / <span class="hljs-number">2</span><br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;rr:&lt;<span class="hljs-number">10</span>&#125;</span>\n<span class="hljs-subst">&#123;r:&lt;<span class="hljs-number">10.2</span>f&#125;</span>\n<span class="hljs-subst">&#123;r**<span class="hljs-number">2</span>*<span class="hljs-number">3.1415</span>:&lt;<span class="hljs-number">10.4</span>f&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="109"><a href="#109" class="headerlink" title="109"></a>109</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs py">a = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-keyword">if</span> a &gt; <span class="hljs-number">100</span> <span class="hljs-keyword">or</span> a &lt; <span class="hljs-number">0</span>:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;error&#x27;</span>)<br><span class="hljs-keyword">else</span>:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;pass&#x27;</span> <span class="hljs-keyword">if</span> a&gt;<span class="hljs-number">59</span> <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;fail&#x27;</span>, <span class="hljs-string">&#x27;even&#x27;</span> <span class="hljs-keyword">if</span> a%<span class="hljs-number">2</span>==<span class="hljs-number">0</span> <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;odd&#x27;</span>, sep=<span class="hljs-string">&#x27;\n&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="110"><a href="#110" class="headerlink" title="110"></a>110</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs py">a, b, c = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-built_in">print</span>(<span class="hljs-number">1</span> <span class="hljs-keyword">if</span> <span class="hljs-number">100</span>&gt;a&gt;=<span class="hljs-number">60</span> <span class="hljs-keyword">else</span> <span class="hljs-number">0</span>, <span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;(b+<span class="hljs-number">1</span>)/<span class="hljs-number">10</span>:<span class="hljs-number">.2</span>f&#125;</span>&#x27;</span>, <span class="hljs-built_in">max</span>(a, c), sep=<span class="hljs-string">&#x27;\n&#x27;</span>)<br></code></pre></td></tr></table></figure><h2 id="第2類：選擇敘述與迴圈"><a href="#第2類：選擇敘述與迴圈" class="headerlink" title="第2類：選擇敘述與迴圈"></a>第2類：選擇敘述與迴圈</h2><h3 id="201"><a href="#201" class="headerlink" title="201"></a>201</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;even&#x27;</span> <span class="hljs-keyword">if</span> <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())%<span class="hljs-number">2</span>==<span class="hljs-number">0</span> <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;odd&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="202"><a href="#202" class="headerlink" title="202"></a>202</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs py">a = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;error&#x27;</span> <span class="hljs-keyword">if</span> a&gt;<span class="hljs-number">100</span> <span class="hljs-keyword">else</span> a+<span class="hljs-number">10</span> <span class="hljs-keyword">if</span> a&gt;<span class="hljs-number">60</span> <span class="hljs-keyword">else</span> a+<span class="hljs-number">5</span>)<br></code></pre></td></tr></table></figure><h3 id="203"><a href="#203" class="headerlink" title="203"></a>203</h3><p>if-else 解</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs py">TABLE = (<span class="hljs-string">&#x27;one&#x27;</span>, <span class="hljs-string">&#x27;two&#x27;</span>, <span class="hljs-string">&#x27;three&#x27;</span>, <span class="hljs-string">&#x27;four&#x27;</span>)<br>i = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><br><span class="hljs-built_in">print</span>(TABLE[i-<span class="hljs-number">1</span>] <span class="hljs-keyword">if</span> <span class="hljs-number">1</span> &lt;= i &lt;= <span class="hljs-number">4</span> <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;error&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="204"><a href="#204" class="headerlink" title="204"></a>204</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs py">a, b, s = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">input</span>()<br><span class="hljs-keyword">if</span> s <span class="hljs-keyword">not</span> <span class="hljs-keyword">in</span> (<span class="hljs-string">&#x27;+&#x27;</span>, <span class="hljs-string">&#x27;-&#x27;</span>, <span class="hljs-string">&#x27;*&#x27;</span>):<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;error&#x27;</span>)<br><span class="hljs-keyword">else</span>:<br>    calc = <span class="hljs-built_in">eval</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;a&#125;</span><span class="hljs-subst">&#123;s&#125;</span><span class="hljs-subst">&#123;b&#125;</span>&#x27;</span>)<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;a&#125;</span><span class="hljs-subst">&#123;s&#125;</span><span class="hljs-subst">&#123;b&#125;</span>=<span class="hljs-subst">&#123;calc&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="205"><a href="#205" class="headerlink" title="205"></a>205</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs py">arr = [<span class="hljs-number">0</span>] * <span class="hljs-number">7</span><br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">10</span>):<br>    i = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>    <span class="hljs-keyword">if</span> <span class="hljs-number">1</span> &lt;= i &lt;= <span class="hljs-number">6</span>:<br>        arr[i-<span class="hljs-number">1</span>] += <span class="hljs-number">1</span><br>    <span class="hljs-keyword">else</span>:<br>        arr[-<span class="hljs-number">1</span>] += <span class="hljs-number">1</span><br><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">6</span>):<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;number<span class="hljs-subst">&#123;i+<span class="hljs-number">1</span>&#125;</span>:<span class="hljs-subst">&#123;arr[i]&#125;</span>&#x27;</span>)<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;error:<span class="hljs-subst">&#123;arr[-<span class="hljs-number">1</span>]&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="206"><a href="#206" class="headerlink" title="206"></a>206</h3><p>迴圈解</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs py">a, b = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-built_in">print</span>(<span class="hljs-built_in">sum</span>(i <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(a, b+<span class="hljs-number">1</span>) <span class="hljs-keyword">if</span> i % <span class="hljs-number">2</span>))<br></code></pre></td></tr></table></figure><p>公式解</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">odd_sum</span>(<span class="hljs-params">n</span>):</span><br>    cnt = (n + <span class="hljs-number">1</span>) // <span class="hljs-number">2</span><br>    <span class="hljs-keyword">return</span> cnt**<span class="hljs-number">2</span><br><br>a, b = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-built_in">print</span>(odd_sum(b) - odd_sum(a-<span class="hljs-number">1</span>))<br></code></pre></td></tr></table></figure><h3 id="207"><a href="#207" class="headerlink" title="207"></a>207</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">prime</span>(<span class="hljs-params">n</span>):</span><br>    <span class="hljs-keyword">if</span> n &lt;= <span class="hljs-number">1</span>:<br>        <span class="hljs-keyword">return</span> <span class="hljs-literal">False</span><br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">2</span>, <span class="hljs-built_in">int</span>(n**<span class="hljs-number">0.5</span>)+<span class="hljs-number">1</span>):<br>        <span class="hljs-keyword">if</span> n % i == <span class="hljs-number">0</span>:<br>            <span class="hljs-keyword">return</span> <span class="hljs-literal">False</span><br>    <span class="hljs-keyword">return</span> <span class="hljs-literal">True</span><br><br>n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;n&#125;</span> is<span class="hljs-subst">&#123;<span class="hljs-string">&quot;&quot;</span> <span class="hljs-keyword">if</span> prime(n) <span class="hljs-keyword">else</span> <span class="hljs-string">&quot; not&quot;</span>&#125;</span> a prime number&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="208"><a href="#208" class="headerlink" title="208"></a>208</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">prime</span>(<span class="hljs-params">n</span>):</span><br>    <span class="hljs-keyword">if</span> n &lt;= <span class="hljs-number">1</span>:<br>        <span class="hljs-keyword">return</span> <span class="hljs-literal">False</span><br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">2</span>, <span class="hljs-built_in">int</span>(n**<span class="hljs-number">0.5</span>)+<span class="hljs-number">1</span>):<br>        <span class="hljs-keyword">if</span> n % i == <span class="hljs-number">0</span>:<br>            <span class="hljs-keyword">return</span> <span class="hljs-literal">False</span><br>    <span class="hljs-keyword">return</span> <span class="hljs-literal">True</span><br><br><span class="hljs-built_in">print</span>(*(i <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">2</span>, <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())) <span class="hljs-keyword">if</span> prime(i)), end=<span class="hljs-string">&#x27; \n&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="209"><a href="#209" class="headerlink" title="209"></a>209</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><code class="hljs py">n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><br><span class="hljs-keyword">if</span> n <span class="hljs-keyword">not</span> <span class="hljs-keyword">in</span> (<span class="hljs-number">0</span>, <span class="hljs-number">1</span>):<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;error&#x27;</span>)<br>    exit()<br><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">1</span>, <span class="hljs-number">6</span>):<br>    <span class="hljs-keyword">for</span> j <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">1</span>, <span class="hljs-number">6</span>):<br>        <span class="hljs-keyword">if</span> n == <span class="hljs-number">0</span>:<br>            <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;i&#125;</span> x <span class="hljs-subst">&#123;j&#125;</span> = <span class="hljs-subst">&#123;i*j&#125;</span>&#x27;</span>, end=<span class="hljs-string">&#x27;\t&#x27;</span>)<br>        <span class="hljs-keyword">else</span>:<br>            <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;j&#125;</span> x <span class="hljs-subst">&#123;i&#125;</span> = <span class="hljs-subst">&#123;i*j&#125;</span>&#x27;</span>, end=<span class="hljs-string">&#x27;\t&#x27;</span>)<br>    <span class="hljs-built_in">print</span>()<br></code></pre></td></tr></table></figure><h3 id="210"><a href="#210" class="headerlink" title="210"></a>210</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-keyword">from</span> math <span class="hljs-keyword">import</span> gcd, lcm<br><br>a, b = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-built_in">print</span>(gcd(a, b), lcm(a, b), sep=<span class="hljs-string">&#x27;\n&#x27;</span>)<br></code></pre></td></tr></table></figure><h2 id="第3類：函式與陣列"><a href="#第3類：函式與陣列" class="headerlink" title="第3類：函式與陣列"></a>第3類：函式與陣列</h2><h3 id="301"><a href="#301" class="headerlink" title="301"></a>301</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">compute</span>():</span><br>    star, line = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>    <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(line):<br>        <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;*&#x27;</span> * star)<br>    <span class="hljs-built_in">print</span>(star*line)<br><br>compute()<br></code></pre></td></tr></table></figure><h3 id="302"><a href="#302" class="headerlink" title="302"></a>302</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">compute</span>(<span class="hljs-params">n</span>):</span><br>    <span class="hljs-keyword">if</span> n &lt; <span class="hljs-number">0</span> <span class="hljs-keyword">or</span> n &gt; <span class="hljs-number">100</span>:<br>        <span class="hljs-keyword">return</span> -<span class="hljs-number">1</span><br>    <span class="hljs-keyword">return</span> n+<span class="hljs-number">5</span> <span class="hljs-keyword">if</span> n&gt;=<span class="hljs-number">60</span> <span class="hljs-keyword">else</span> n+<span class="hljs-number">10</span><br><br><span class="hljs-built_in">print</span>(compute(<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())))<br></code></pre></td></tr></table></figure><h3 id="303"><a href="#303" class="headerlink" title="303"></a>303</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">compute</span>(<span class="hljs-params">n</span>):</span><br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">2</span>, <span class="hljs-built_in">int</span>(n**<span class="hljs-number">0.5</span>)+<span class="hljs-number">1</span>):<br>        <span class="hljs-keyword">if</span> n % i == <span class="hljs-number">0</span>:<br>            <span class="hljs-keyword">return</span> <span class="hljs-literal">False</span><br>    <span class="hljs-keyword">return</span> <span class="hljs-literal">True</span><br><br>n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;n&#125;</span> is <span class="hljs-subst">&#123;<span class="hljs-string">&quot;&quot;</span> <span class="hljs-keyword">if</span> compute(n) <span class="hljs-keyword">else</span> <span class="hljs-string">&quot;not &quot;</span>&#125;</span>a prime number&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="304"><a href="#304" class="headerlink" title="304"></a>304</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">compute</span>(<span class="hljs-params">arr</span>):</span><br>    t = <span class="hljs-number">0</span><br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> arr:<br>        <span class="hljs-keyword">if</span> i % <span class="hljs-number">3</span> == <span class="hljs-number">0</span>:<br>            t += <span class="hljs-number">1</span><br>    <span class="hljs-keyword">return</span> t<br><br>arr = [<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()) <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">6</span>)]<br><span class="hljs-built_in">print</span>(compute(arr))<br></code></pre></td></tr></table></figure><h3 id="305"><a href="#305" class="headerlink" title="305"></a>305</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">compute</span>(<span class="hljs-params">a, b, c</span>):</span><br>    <span class="hljs-keyword">return</span> <span class="hljs-built_in">eval</span>(a+c+b)<br><br>a, c, b = <span class="hljs-built_in">input</span>(), <span class="hljs-built_in">input</span>(), <span class="hljs-built_in">input</span>()<br>c = <span class="hljs-string">&#x27;+&#x27;</span> <span class="hljs-keyword">if</span> c==<span class="hljs-string">&#x27;1&#x27;</span> <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;*&#x27;</span><br><span class="hljs-built_in">print</span>(compute(a,b,c))<br></code></pre></td></tr></table></figure><h3 id="306"><a href="#306" class="headerlink" title="306"></a>306</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-keyword">from</span> math <span class="hljs-keyword">import</span> factorial<br><br><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">compute</span>():</span> <span class="hljs-keyword">pass</span> <span class="hljs-comment">#題目硬性規定要用自訂function 所以才寫這行繞過限制</span><br><br>n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;n&#125;</span>!=<span class="hljs-subst">&#123;factorial(n)&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="307"><a href="#307" class="headerlink" title="307"></a>307</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">compute</span>():</span> <span class="hljs-keyword">pass</span><br><br><span class="hljs-built_in">print</span>(<span class="hljs-built_in">max</span>(<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()) <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">5</span>)))<br></code></pre></td></tr></table></figure><h3 id="308"><a href="#308" class="headerlink" title="308"></a>308</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">compute</span>():</span> <span class="hljs-keyword">pass</span><br><br>fib = [<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">5</span>, <span class="hljs-number">8</span>, <span class="hljs-number">13</span>, <span class="hljs-number">21</span>, <span class="hljs-number">34</span>, <span class="hljs-number">55</span>] <span class="hljs-comment">#因為題目有說數字&lt;=10</span><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-number">0</span>, -<span class="hljs-number">1</span>):<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;fib(<span class="hljs-subst">&#123;i&#125;</span>)=<span class="hljs-subst">&#123;fib[i-<span class="hljs-number">1</span>]&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="309"><a href="#309" class="headerlink" title="309"></a>309</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">compute</span>(<span class="hljs-params">arr, brr</span>):</span><br>    <span class="hljs-keyword">return</span> <span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;<span class="hljs-built_in">min</span>(a / b <span class="hljs-keyword">for</span> a, b <span class="hljs-keyword">in</span> <span class="hljs-built_in">zip</span>(arr, brr)):<span class="hljs-number">.3</span>f&#125;</span>&#x27;</span><br><br>arr = [<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()) <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">3</span>)]<br>brr = [<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()) <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">3</span>)]<br><span class="hljs-built_in">print</span>(compute(arr, brr))<br></code></pre></td></tr></table></figure><h3 id="310"><a href="#310" class="headerlink" title="310"></a>310</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">compute</span>(<span class="hljs-params">n</span>):</span><br>    a = <span class="hljs-number">0</span><br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">str</span>(n):<br>        a += <span class="hljs-built_in">int</span>(i)**<span class="hljs-built_in">len</span>(<span class="hljs-built_in">str</span>(n))<br>    <span class="hljs-keyword">return</span> n == a<br><br>t = <span class="hljs-number">0</span><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">1</span>, <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())+<span class="hljs-number">1</span>):<br>    <span class="hljs-keyword">if</span> compute(i):<br>        <span class="hljs-built_in">print</span>(i)<br>        t += i<br><span class="hljs-built_in">print</span>(t)<br></code></pre></td></tr></table></figure><h2 id="第4類：字串與檔案處理"><a href="#第4類：字串與檔案處理" class="headerlink" title="第4類：字串與檔案處理"></a>第4類：字串與檔案處理</h2><h3 id="401"><a href="#401" class="headerlink" title="401"></a>401</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs py">s1, s2 = <span class="hljs-built_in">input</span>(), <span class="hljs-built_in">input</span>()<br><span class="hljs-built_in">print</span>(<span class="hljs-built_in">len</span>(s1), <span class="hljs-built_in">len</span>(s2), s1+s2, sep=<span class="hljs-string">&#x27;\n&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="402"><a href="#402" class="headerlink" title="402"></a>402</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><code class="hljs py">s1, s2, n = <span class="hljs-built_in">input</span>(), <span class="hljs-built_in">input</span>(), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-keyword">if</span> n &gt; <span class="hljs-built_in">len</span>(s1):<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;error&#x27;</span>)<br>    exit()<br><br>s = [s1[:n], s2[:n]]<br>s.sort()<br><span class="hljs-keyword">if</span> s[<span class="hljs-number">0</span>] == s[<span class="hljs-number">1</span>]:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;s1&#125;</span> = <span class="hljs-subst">&#123;s2&#125;</span>&#x27;</span>)<br><span class="hljs-keyword">elif</span> s[<span class="hljs-number">0</span>] == s1[:n]:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;s1&#125;</span> &lt; <span class="hljs-subst">&#123;s2&#125;</span>&#x27;</span>)<br><span class="hljs-keyword">else</span>:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;s1&#125;</span> &gt; <span class="hljs-subst">&#123;s2&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="403"><a href="#403" class="headerlink" title="403"></a>403</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-built_in">print</span>(<span class="hljs-built_in">input</span>().swapcase())<br></code></pre></td></tr></table></figure><h3 id="404"><a href="#404" class="headerlink" title="404"></a>404</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-keyword">from</span> collections <span class="hljs-keyword">import</span> Counter <span class="hljs-comment">#一個計算元素出現頻率的容器 長相和用法同dict</span><br><br>a = Counter(<span class="hljs-built_in">input</span>())<br>m = <span class="hljs-built_in">max</span>(a.values())<br>c = [k <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> a.items() <span class="hljs-keyword">if</span> v == m]<br><span class="hljs-built_in">print</span>(*c, m, sep=<span class="hljs-string">&#x27;\n&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="405"><a href="#405" class="headerlink" title="405"></a>405</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs py">a, b, c = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><br><span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(<span class="hljs-string">&#x27;read.txt&#x27;</span>, <span class="hljs-string">&#x27;r&#x27;</span>) <span class="hljs-keyword">as</span> f:<br>    data = f.read().split()<br><br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;<span class="hljs-built_in">str</span>(a)*a&#125;</span><span class="hljs-subst">&#123;data[<span class="hljs-number">0</span>][a:]&#125;</span>\n<span class="hljs-subst">&#123;<span class="hljs-built_in">str</span>(b)*b&#125;</span><span class="hljs-subst">&#123;data[<span class="hljs-number">1</span>][b:]&#125;</span>\n<span class="hljs-subst">&#123;<span class="hljs-built_in">str</span>(c)*c&#125;</span><span class="hljs-subst">&#123;data[<span class="hljs-number">2</span>][c:]&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="406"><a href="#406" class="headerlink" title="406"></a>406</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs py">lo = <span class="hljs-string">&#x27;qwertyuiopasdfghjklzxcvbnm&#x27;</span><br>up = lo.upper()<br><br>inp = <span class="hljs-built_in">input</span>()<br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> inp:<br>    <span class="hljs-keyword">if</span> i <span class="hljs-keyword">in</span> <span class="hljs-string">&#x27;plmPLM&#x27;</span>:<br>        <span class="hljs-built_in">print</span>(i, end=<span class="hljs-string">&#x27;&#x27;</span>)<br>    <span class="hljs-keyword">elif</span> i <span class="hljs-keyword">in</span> lo:<br>        <span class="hljs-built_in">print</span>(lo[lo.index(i)+<span class="hljs-number">1</span>], end=<span class="hljs-string">&#x27;&#x27;</span>)<br>    <span class="hljs-keyword">else</span>:<br>        <span class="hljs-built_in">print</span>(up[up.index(i)+<span class="hljs-number">1</span>], end=<span class="hljs-string">&#x27;&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="407"><a href="#407" class="headerlink" title="407"></a>407</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(<span class="hljs-string">&#x27;read.txt&#x27;</span>, <span class="hljs-string">&#x27;r&#x27;</span>) <span class="hljs-keyword">as</span> infile, <span class="hljs-built_in">open</span>(<span class="hljs-string">&#x27;write.txt&#x27;</span>, <span class="hljs-string">&#x27;w&#x27;</span>) <span class="hljs-keyword">as</span> outfile:<br>    data = infile.read()<br>    outfile.write(data.replace(<span class="hljs-string">&#x27;*&#x27;</span>, <span class="hljs-string">&#x27;&#x27;</span>))<br></code></pre></td></tr></table></figure><h3 id="408"><a href="#408" class="headerlink" title="408"></a>408</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs py">s1, s2 = <span class="hljs-built_in">input</span>(), <span class="hljs-built_in">input</span>()<br><br><span class="hljs-keyword">if</span> <span class="hljs-built_in">len</span>(s1) &lt;= <span class="hljs-number">3</span> <span class="hljs-keyword">or</span> <span class="hljs-built_in">len</span>(s2) &lt;= <span class="hljs-number">3</span> <span class="hljs-keyword">or</span> <span class="hljs-built_in">len</span>(s1) &gt; <span class="hljs-number">20</span> <span class="hljs-keyword">or</span> <span class="hljs-built_in">len</span>(s2) &gt; <span class="hljs-number">20</span>:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;error&#x27;</span>)<br><span class="hljs-keyword">else</span>:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-built_in">len</span>(s1), <span class="hljs-built_in">len</span>(s2), (s1+s2)[::-<span class="hljs-number">1</span>], sep=<span class="hljs-string">&#x27;\n&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="409"><a href="#409" class="headerlink" title="409"></a>409</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(<span class="hljs-string">&#x27;read.txt&#x27;</span>) <span class="hljs-keyword">as</span> infile, <span class="hljs-built_in">open</span>(<span class="hljs-string">&#x27;write.txt&#x27;</span>, <span class="hljs-string">&#x27;w&#x27;</span>) <span class="hljs-keyword">as</span> outfile:<br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> infile.read():<br>        outfile.write(<span class="hljs-built_in">chr</span>(<span class="hljs-built_in">ord</span>(i)+<span class="hljs-number">2</span>))<br></code></pre></td></tr></table></figure><h3 id="410"><a href="#410" class="headerlink" title="410"></a>410</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-keyword">from</span> string <span class="hljs-keyword">import</span> capwords <span class="hljs-comment">#與swapcase()有點像 但不會誤把what&#x27;s的s轉大寫</span><br><br>n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><br><span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(<span class="hljs-string">&#x27;read.txt&#x27;</span>, <span class="hljs-string">&#x27;r&#x27;</span>) <span class="hljs-keyword">as</span> infile, <span class="hljs-built_in">open</span>(<span class="hljs-string">&#x27;write.txt&#x27;</span>, <span class="hljs-string">&#x27;w&#x27;</span>) <span class="hljs-keyword">as</span> outfile:<br>    f = infile.readlines()<br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-built_in">len</span>(f[:n])):<br>        outfile.write(capwords(f[i].strip()))<br>        <span class="hljs-keyword">if</span> i &lt; n-<span class="hljs-number">1</span>:<br>            outfile.write(<span class="hljs-string">&#x27;\n&#x27;</span>)<br></code></pre></td></tr></table></figure><h2 id="第5類：綜合應用一"><a href="#第5類：綜合應用一" class="headerlink" title="第5類：綜合應用一"></a>第5類：綜合應用一</h2><h3 id="501-字串轉換"><a href="#501-字串轉換" class="headerlink" title="501 字串轉換"></a>501 字串轉換</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs py">s = <span class="hljs-built_in">input</span>()<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;s&#125;</span> change to <span class="hljs-subst">&#123;s.split(<span class="hljs-string">&quot;.&quot;</span>)[<span class="hljs-number">0</span>]&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="502-數字相乘"><a href="#502-數字相乘" class="headerlink" title="502 數字相乘"></a>502 數字相乘</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs py">s = <span class="hljs-built_in">input</span>()<br>s2 = <span class="hljs-string">&#x27;&#x27;</span><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> s:<br>    s2 += <span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;i&#125;</span>*&#x27;</span><br>s2 = s2[:-<span class="hljs-number">1</span>]<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;s2&#125;</span>=<span class="hljs-subst">&#123;<span class="hljs-built_in">eval</span>(s2)&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="503-區間運算"><a href="#503-區間運算" class="headerlink" title="503 區間運算"></a>503 區間運算</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs py">a, b = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">1</span>, a):<br>    <span class="hljs-keyword">if</span> (i**<span class="hljs-number">0.5</span>).is_integer():<br>        <span class="hljs-built_in">print</span>(<span class="hljs-built_in">int</span>(i**<span class="hljs-number">0.5</span>)**b)<br></code></pre></td></tr></table></figure><h3 id="504-迴文數"><a href="#504-迴文數" class="headerlink" title="504 迴文數"></a>504 迴文數</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs py">s = <span class="hljs-built_in">input</span>()<br><span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;Yes&#x27;</span> <span class="hljs-keyword">if</span> s==s[::-<span class="hljs-number">1</span>] <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;No&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="505-公式計算"><a href="#505-公式計算" class="headerlink" title="505 公式計算"></a>505 公式計算</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-keyword">from</span> math <span class="hljs-keyword">import</span> log10, floor<br><br>a, b, c, d, e, f = <span class="hljs-built_in">float</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">float</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">float</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">float</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">float</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">float</span>(<span class="hljs-built_in">input</span>())<br>ans = <span class="hljs-built_in">abs</span>(a)*floor(b) + c**d * e**<span class="hljs-number">0.5</span> + log10(f)<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;ans:<span class="hljs-number">.2</span>f&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="506-質因數分解"><a href="#506-質因數分解" class="headerlink" title="506 質因數分解"></a>506 質因數分解</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><code class="hljs py">n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><br><span class="hljs-keyword">if</span> n &lt; <span class="hljs-number">2</span>:<br>    <span class="hljs-built_in">print</span>(-<span class="hljs-number">1</span>)<br>    exit()<br><br>fs = []<br><span class="hljs-keyword">while</span> n % <span class="hljs-number">2</span> == <span class="hljs-number">0</span>:<br>    fs.append(<span class="hljs-number">2</span>)<br>    n //= <span class="hljs-number">2</span><br><br>f = <span class="hljs-number">3</span><br><span class="hljs-keyword">while</span> f**<span class="hljs-number">2</span> &lt;= n:<br>    <span class="hljs-keyword">while</span> n % f == <span class="hljs-number">0</span>:<br>        fs.append(f)<br>        n //= f<br>    f += <span class="hljs-number">2</span><br><br><span class="hljs-keyword">if</span> n &gt; <span class="hljs-number">2</span>:<br>    fs.append(n)<br><br><span class="hljs-keyword">if</span> <span class="hljs-built_in">len</span>(fs) == <span class="hljs-number">1</span>:<br>    <span class="hljs-built_in">print</span>(-<span class="hljs-number">1</span>)<br><span class="hljs-keyword">else</span>:<br>    <span class="hljs-built_in">print</span>(*fs, sep=<span class="hljs-string">&#x27;*&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="507-猜數字"><a href="#507-猜數字" class="headerlink" title="507 猜數字"></a>507 猜數字</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs py">ans = <span class="hljs-built_in">list</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">3</span>):<br>    a = b = <span class="hljs-number">0</span><br>    g = <span class="hljs-built_in">list</span>(<span class="hljs-built_in">input</span>())<br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">4</span>):<br>        <span class="hljs-keyword">if</span> ans[i] == g[i]:<br>            a += <span class="hljs-number">1</span><br>        <span class="hljs-keyword">elif</span> g[i] <span class="hljs-keyword">in</span> ans:<br>            b += <span class="hljs-number">1</span><br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;a&#125;</span>A<span class="hljs-subst">&#123;b&#125;</span>B&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="508-二進位運算"><a href="#508-二進位運算" class="headerlink" title="508 二進位運算"></a>508 二進位運算</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs py">b1, b2 = <span class="hljs-built_in">input</span>(), <span class="hljs-built_in">input</span>()<br>n1, n2 = <span class="hljs-built_in">int</span>(b1, <span class="hljs-number">2</span>), <span class="hljs-built_in">int</span>(b2, <span class="hljs-number">2</span>)<br><br>sb = <span class="hljs-built_in">bin</span>(n1+n2)[<span class="hljs-number">2</span>:]<br><span class="hljs-keyword">if</span> <span class="hljs-built_in">len</span>(sb) &gt; <span class="hljs-number">8</span>:<br>    sb = <span class="hljs-string">&#x27;11111111&#x27;</span><br><br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;n1&#125;</span> + <span class="hljs-subst">&#123;n2&#125;</span> = <span class="hljs-subst">&#123;n1+n2&#125;</span>\n<span class="hljs-subst">&#123;sb&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="509-字串拆解"><a href="#509-字串拆解" class="headerlink" title="509 字串拆解"></a>509 字串拆解</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs py">s = <span class="hljs-built_in">list</span>(<span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split(<span class="hljs-string">&#x27;/&#x27;</span>)))<br><span class="hljs-built_in">print</span>(*s)<br><span class="hljs-built_in">print</span>(<span class="hljs-built_in">sum</span>(s))<br></code></pre></td></tr></table></figure><h3 id="510-星號輸出"><a href="#510-星號輸出" class="headerlink" title="510 星號輸出"></a>510 星號輸出</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><code class="hljs py">h, w = <span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split())<br>m = [<span class="hljs-built_in">list</span>(<span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split())) <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(h)]<br><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(h):<br>    ans = <span class="hljs-string">&#x27;&#x27;</span><br>    <span class="hljs-keyword">for</span> j <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(w):<br>        <span class="hljs-keyword">if</span> m[i][j] == <span class="hljs-number">0</span>:<br>            ans += <span class="hljs-string">&#x27; &#x27;</span><br>        <span class="hljs-keyword">else</span>:<br>            <span class="hljs-keyword">if</span> i==<span class="hljs-number">0</span> <span class="hljs-keyword">or</span> j==<span class="hljs-number">0</span> <span class="hljs-keyword">or</span> i==h-<span class="hljs-number">1</span> <span class="hljs-keyword">or</span> j==w-<span class="hljs-number">1</span>:<br>                ans += <span class="hljs-string">&#x27;*&#x27;</span><br>            <span class="hljs-keyword">else</span>:<br>                <span class="hljs-keyword">if</span> m[i-<span class="hljs-number">1</span>][j]==<span class="hljs-number">0</span> <span class="hljs-keyword">or</span> m[i][j-<span class="hljs-number">1</span>]==<span class="hljs-number">0</span> <span class="hljs-keyword">or</span> m[i+<span class="hljs-number">1</span>][j]==<span class="hljs-number">0</span> <span class="hljs-keyword">or</span> m[i][j+<span class="hljs-number">1</span>]==<span class="hljs-number">0</span>:<br>                    ans += <span class="hljs-string">&#x27;*&#x27;</span><br>                <span class="hljs-keyword">else</span>:<br>                    ans += <span class="hljs-string">&#x27; &#x27;</span><br>    <span class="hljs-built_in">print</span>(ans)<br></code></pre></td></tr></table></figure><h2 id="第6類：綜合應用二"><a href="#第6類：綜合應用二" class="headerlink" title="第6類：綜合應用二"></a>第6類：綜合應用二</h2><h3 id="601-大小寫轉換"><a href="#601-大小寫轉換" class="headerlink" title="601 大小寫轉換"></a>601 大小寫轉換</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs py">lett = <span class="hljs-built_in">input</span>()<br>n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><br>s = lett[n].swapcase()<br>nlet = lett[:n] + s + lett[n+<span class="hljs-number">1</span>:]<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;The letter that was selected is: <span class="hljs-subst">&#123;s&#125;</span>\n<span class="hljs-subst">&#123;nlet&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="602-字串拆解"><a href="#602-字串拆解" class="headerlink" title="602 字串拆解"></a>602 字串拆解</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs py">uc = lc = <span class="hljs-string">&#x27;&#x27;</span><br>c = <span class="hljs-number">0</span><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">input</span>():<br>    <span class="hljs-keyword">if</span> <span class="hljs-string">&#x27;A&#x27;</span> &lt;= i &lt;= <span class="hljs-string">&#x27;Z&#x27;</span>:<br>        uc += i<br>        c += <span class="hljs-number">1</span><br>    <span class="hljs-keyword">else</span>:<br>        lc += i<br><span class="hljs-built_in">print</span>(uc, lc, c, sep=<span class="hljs-string">&#x27;\n&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="603-多重迴圈"><a href="#603-多重迴圈" class="headerlink" title="603 多重迴圈"></a>603 多重迴圈</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs py">a, _ = <span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split())<br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(a):<br>    <span class="hljs-built_in">print</span>(<span class="hljs-built_in">input</span>().replace(<span class="hljs-string">&#x27; &#x27;</span>, <span class="hljs-string">&#x27;,&#x27;</span>))<br></code></pre></td></tr></table></figure><h3 id="604-選擇排序"><a href="#604-選擇排序" class="headerlink" title="604 選擇排序"></a>604 選擇排序</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs py">lst = [<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()) <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">9</span>)]<br>lst.sort()<br><span class="hljs-built_in">print</span>(*lst, <span class="hljs-string">f&#x27;sum = <span class="hljs-subst">&#123;<span class="hljs-built_in">sum</span>(lst)&#125;</span>&#x27;</span>, sep=<span class="hljs-string">&#x27;\n&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="605-差值計算"><a href="#605-差值計算" class="headerlink" title="605 差值計算"></a>605 差值計算</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs py">lst = [<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()) <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">6</span>)]<br>lst.sort()<br><span class="hljs-built_in">print</span>(<span class="hljs-built_in">sum</span>(lst[<span class="hljs-number">3</span>:]) - <span class="hljs-built_in">sum</span>(lst[:<span class="hljs-number">3</span>]))<br></code></pre></td></tr></table></figure><h3 id="606-檢驗學號"><a href="#606-檢驗學號" class="headerlink" title="606 檢驗學號"></a>606 檢驗學號</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">3</span>):<br>    s = <span class="hljs-built_in">list</span>(<span class="hljs-built_in">input</span>())<br>    s[:-<span class="hljs-number">1</span>] = <span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, s[:-<span class="hljs-number">1</span>])<br>    check = <span class="hljs-built_in">chr</span>(((s[<span class="hljs-number">0</span>]+s[<span class="hljs-number">2</span>]+s[<span class="hljs-number">4</span>])+(s[<span class="hljs-number">1</span>]+s[<span class="hljs-number">3</span>])*<span class="hljs-number">5</span>)%<span class="hljs-number">26</span> + <span class="hljs-number">64</span>)<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;Pass&#x27;</span> <span class="hljs-keyword">if</span> check == s[<span class="hljs-number">5</span>] <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;Fail&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="607-撲克排比大小"><a href="#607-撲克排比大小" class="headerlink" title="607 撲克排比大小"></a>607 撲克排比大小</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs py">CMP = <span class="hljs-built_in">tuple</span>(<span class="hljs-string">&#x27;CDHS&#x27;</span>)<br>one, two = <span class="hljs-built_in">input</span>().split()<br><span class="hljs-keyword">if</span> one == two:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;one&#125;</span> = <span class="hljs-subst">&#123;two&#125;</span>&#x27;</span>)<br><span class="hljs-keyword">elif</span> one[<span class="hljs-number">0</span>] == two[<span class="hljs-number">0</span>]:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;one&#125;</span> <span class="hljs-subst">&#123;<span class="hljs-string">&quot;&gt;&quot;</span> <span class="hljs-keyword">if</span> <span class="hljs-built_in">int</span>(one[<span class="hljs-number">1</span>:])&gt;<span class="hljs-built_in">int</span>(two[<span class="hljs-number">1</span>:]) <span class="hljs-keyword">else</span> <span class="hljs-string">&quot;&lt;&quot;</span>&#125;</span> <span class="hljs-subst">&#123;two&#125;</span>&#x27;</span>)<br><span class="hljs-keyword">else</span>:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;one&#125;</span> <span class="hljs-subst">&#123;<span class="hljs-string">&quot;&gt;&quot;</span> <span class="hljs-keyword">if</span> CMP.index(one[<span class="hljs-number">0</span>])&gt;CMP.index(two[<span class="hljs-number">0</span>]) <span class="hljs-keyword">else</span> <span class="hljs-string">&quot;&lt;&quot;</span>&#125;</span> <span class="hljs-subst">&#123;two&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="608-棒球計分"><a href="#608-棒球計分" class="headerlink" title="608 棒球計分"></a>608 棒球計分</h3><p>假解</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs py">arr = [<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()) <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">10</span>)]<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;score = <span class="hljs-subst">&#123;<span class="hljs-built_in">sum</span>(arr)%<span class="hljs-number">10</span>&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure>    <div class="fold">      <div class="fold-title fold-default collapsed" data-toggle="collapse" href="#collapse-40656943" role="button" aria-expanded="false" aria-controls="collapse-40656943">        <div class="fold-arrow">▶</div>假解的定義      </div>      <div class="fold-collapse collapse" id="collapse-40656943">        <div class="fold-content">          <p>假解指的是剛好可以通過測資 但不正確的寫法<br>也就是沒有按題目的邏輯去寫 只是剛好系統放的測資用這個程式跑得過<br>這題假解就是這種情況 剛好跑得過這個網站的所有測資 但其實根本不是這樣解的<br>由於我不確定最後TQC+測驗會不會用相同測資 因此為求保險 建議還是要理解一下真解的概念</p>         </div>      </div>    </div><p>真解</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><code class="hljs py">ans = [<span class="hljs-literal">False</span>] * <span class="hljs-number">3</span> <span class="hljs-comment">#[一壘, 二壘, 三壘]</span><br>score = <span class="hljs-number">0</span><br><br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">10</span>):<br>    hit = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>    <span class="hljs-keyword">if</span> hit == <span class="hljs-number">0</span>:<br>        <span class="hljs-keyword">continue</span><br>    <span class="hljs-keyword">elif</span> hit == <span class="hljs-number">1</span>:<br>        <span class="hljs-keyword">if</span> ans[-<span class="hljs-number">1</span>]:<br>            score += <span class="hljs-number">1</span><br>        ans = [<span class="hljs-literal">True</span>] + ans[:-<span class="hljs-number">1</span>]<br>    <span class="hljs-keyword">elif</span> hit == <span class="hljs-number">2</span>:<br>        <span class="hljs-keyword">if</span> ans[-<span class="hljs-number">1</span>]:<br>            score += <span class="hljs-number">1</span><br>        <span class="hljs-keyword">if</span> ans[-<span class="hljs-number">2</span>]:<br>            score += <span class="hljs-number">1</span><br>        ans = [<span class="hljs-literal">False</span>, <span class="hljs-literal">True</span>] + ans[:-<span class="hljs-number">2</span>]<br>    <span class="hljs-keyword">elif</span> hit == <span class="hljs-number">3</span>:<br>        score += <span class="hljs-built_in">sum</span>(ans)<br>        ans = [<span class="hljs-literal">False</span>, <span class="hljs-literal">False</span>, <span class="hljs-literal">True</span>]<br>    <span class="hljs-keyword">else</span>:<br>        score += <span class="hljs-built_in">sum</span>(ans) + <span class="hljs-number">1</span><br>        ans = [<span class="hljs-literal">False</span>] * <span class="hljs-number">3</span><br><br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;score = <span class="hljs-subst">&#123;score&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="609-閏年"><a href="#609-閏年" class="headerlink" title="609 閏年"></a>609 閏年</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-keyword">from</span> datetime <span class="hljs-keyword">import</span> date <span class="hljs-comment">#用來專門處理日期時間等問題的套件</span><br><br>y, m, d = <span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split())<br><span class="hljs-keyword">try</span>:<br>    dt = date(y, m, d)<br>    <span class="hljs-built_in">print</span>(dt.timetuple().tm_yday)<br><span class="hljs-keyword">except</span>:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;error&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="610-矩陣乘積"><a href="#610-矩陣乘積" class="headerlink" title="610 矩陣乘積"></a>610 矩陣乘積</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-keyword">from</span> numpy <span class="hljs-keyword">import</span> matrix <span class="hljs-comment">#矩陣運算用 可直接算出矩陣乘法的結果</span><br><br>t, _ = <span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split())<br>a = matrix([<span class="hljs-built_in">list</span>(<span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split())) <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(t)])<br><br>t, _ = <span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split())<br>b = matrix([<span class="hljs-built_in">list</span>(<span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split())) <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(t)])<br><br><span class="hljs-keyword">try</span>:<br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> (a*b).tolist(): <span class="hljs-comment">#matrix.tolist() 把它變為二維陣列 輸出才不會多括號</span><br>        <span class="hljs-built_in">print</span>(*i)<br><span class="hljs-keyword">except</span>:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;error&#x27;</span>)<br></code></pre></td></tr></table></figure>    <div class="fold">      <div class="fold-title fold-default collapsed" data-toggle="collapse" href="#collapse-cfc6b142" role="button" aria-expanded="false" aria-controls="collapse-cfc6b142">        <div class="fold-arrow">▶</div>numpy      </div>      <div class="fold-collapse collapse" id="collapse-cfc6b142">        <div class="fold-content">          <p>numpy不是Python的built-in function或庫<br>而是第三方的庫<br>所以不確定真實上機考時是否可以使用</p>         </div>      </div>    </div><h2 id="第7類：綜合應用三"><a href="#第7類：綜合應用三" class="headerlink" title="第7類：綜合應用三"></a>第7類：綜合應用三</h2><h3 id="701-海龍公式"><a href="#701-海龍公式" class="headerlink" title="701 海龍公式"></a>701 海龍公式</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs py">a, b, c = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>s = (a+b+c) / <span class="hljs-number">2</span><br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;(s*(s-a)*(s-b)*(s-c))**<span class="hljs-number">0.5</span>:<span class="hljs-number">.2</span>f&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="702-二進位轉十進位"><a href="#702-二進位轉十進位" class="headerlink" title="702 二進位轉十進位"></a>702 二進位轉十進位</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-built_in">print</span>(<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>(), <span class="hljs-number">2</span>))<br></code></pre></td></tr></table></figure><h3 id="703-找零錢"><a href="#703-找零錢" class="headerlink" title="703 找零錢"></a>703 找零錢</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><code class="hljs py">n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><br><span class="hljs-keyword">if</span> n &gt;= <span class="hljs-number">50</span>:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;n//<span class="hljs-number">50</span>&#125;</span>*$50&#x27;</span>, end=<span class="hljs-string">&#x27; &#x27;</span>)<br>    n %= <span class="hljs-number">50</span><br><span class="hljs-keyword">if</span> n &gt;= <span class="hljs-number">10</span>:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;n//<span class="hljs-number">10</span>&#125;</span>*$10&#x27;</span>, end=<span class="hljs-string">&#x27; &#x27;</span>)<br>    n %= <span class="hljs-number">10</span><br><span class="hljs-keyword">if</span> n &gt;= <span class="hljs-number">5</span>:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;n//<span class="hljs-number">5</span>&#125;</span>*$5&#x27;</span>, end=<span class="hljs-string">&#x27; &#x27;</span>)<br>    n %= <span class="hljs-number">5</span><br><br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;n&#125;</span>*$1&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="704-過半數"><a href="#704-過半數" class="headerlink" title="704 過半數"></a>704 過半數</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs py"><span class="hljs-keyword">from</span> collections <span class="hljs-keyword">import</span> Counter<br><br>t = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>arr = Counter(<span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split()))<br><br><span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> arr.items():<br>    <span class="hljs-keyword">if</span> v &gt; t/<span class="hljs-number">2</span>:<br>        <span class="hljs-built_in">print</span>(k)<br>        <span class="hljs-keyword">break</span><br><span class="hljs-keyword">else</span>:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;error&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="705-庫存函數"><a href="#705-庫存函數" class="headerlink" title="705 庫存函數"></a>705 庫存函數</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs py">ar = &#123;k: <span class="hljs-built_in">int</span>(v) <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> (<span class="hljs-built_in">input</span>().split() <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">3</span>))&#125; <span class="hljs-comment">#dict</span><br>t = <span class="hljs-number">0</span><br><br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">5</span>):<br>    s = <span class="hljs-built_in">input</span>()<br>    <span class="hljs-keyword">if</span> s <span class="hljs-keyword">in</span> ar:<br>        t += ar[s]<br><br><span class="hljs-built_in">print</span>(t)<br></code></pre></td></tr></table></figure><h3 id="706-整數檔案讀寫"><a href="#706-整數檔案讀寫" class="headerlink" title="706 整數檔案讀寫"></a>706 整數檔案讀寫</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs py">arr = [<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()) <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">4</span>)]<br><br><span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(<span class="hljs-string">&#x27;read.txt&#x27;</span>, <span class="hljs-string">&#x27;r&#x27;</span>) <span class="hljs-keyword">as</span> infile, <span class="hljs-built_in">open</span>(<span class="hljs-string">&#x27;write.txt&#x27;</span>, <span class="hljs-string">&#x27;w&#x27;</span>) <span class="hljs-keyword">as</span> outfile:<br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> infile.readlines():<br>        arr.append(<span class="hljs-built_in">int</span>(i.strip()))<br>    arr.sort()<br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> arr:<br>        outfile.write(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;i&#125;</span>\n&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="707-動態記憶體配置"><a href="#707-動態記憶體配置" class="headerlink" title="707 動態記憶體配置"></a>707 動態記憶體配置</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs py">arr = []<br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())):<br>    a, b = <span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split())<br>    arr.append((<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;a&#125;</span>x<span class="hljs-subst">&#123;b&#125;</span>=&#x27;</span>, a*b))<br><br>arr.sort(key=<span class="hljs-keyword">lambda</span> x: x[<span class="hljs-number">1</span>])<br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> arr:<br>    <span class="hljs-built_in">print</span>(*i, sep=<span class="hljs-string">&#x27;&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="708-12小時制時間"><a href="#708-12小時制時間" class="headerlink" title="708 12小時制時間"></a>708 12小時制時間</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><code class="hljs py">c = <span class="hljs-number">0</span><br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">3</span>):<br>    h, m = <span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split())<br>    <span class="hljs-keyword">if</span> h == <span class="hljs-number">0</span>:<br>        <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;AM 12:<span class="hljs-subst">&#123;m&#125;</span>&#x27;</span>)<br>        c += <span class="hljs-number">1</span><br>    <span class="hljs-keyword">elif</span> h &lt; <span class="hljs-number">12</span>:<br>        <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;AM <span class="hljs-subst">&#123;h&#125;</span>:<span class="hljs-subst">&#123;m&#125;</span>&#x27;</span>)<br>        c += <span class="hljs-number">1</span><br>    <span class="hljs-keyword">elif</span> h == <span class="hljs-number">12</span>:<br>        <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;PM <span class="hljs-subst">&#123;h&#125;</span>:<span class="hljs-subst">&#123;m&#125;</span>&#x27;</span>)<br>    <span class="hljs-keyword">else</span>:<br>        <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;PM <span class="hljs-subst">&#123;h-<span class="hljs-number">12</span>&#125;</span>:<span class="hljs-subst">&#123;m&#125;</span>&#x27;</span>)<br><span class="hljs-built_in">print</span>(c)<br></code></pre></td></tr></table></figure><h3 id="709-圓面積計算"><a href="#709-圓面積計算" class="headerlink" title="709 圓面積計算"></a>709 圓面積計算</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs py">area = <span class="hljs-number">0</span><br>biggest = [<span class="hljs-number">0</span>] * <span class="hljs-number">3</span><br><br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())):<br>    x, y, r = <span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split())<br>    area += r**<span class="hljs-number">2</span> * <span class="hljs-number">3.14159</span><br>    <span class="hljs-keyword">if</span> r &gt; biggest[-<span class="hljs-number">1</span>]:<br>        biggest = [x, y, r]<br><br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;Sum = <span class="hljs-subst">&#123;area:<span class="hljs-number">.2</span>f&#125;</span>\nx: <span class="hljs-subst">&#123;biggest[<span class="hljs-number">0</span>]&#125;</span>, y: <span class="hljs-subst">&#123;biggest[<span class="hljs-number">1</span>]&#125;</span>\nradius: <span class="hljs-subst">&#123;biggest[<span class="hljs-number">2</span>]&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="710-FIFO分頁替換演算法"><a href="#710-FIFO分頁替換演算法" class="headerlink" title="710 FIFO分頁替換演算法"></a>710 FIFO分頁替換演算法</h3><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs py">arr = [<span class="hljs-number">0</span>] * <span class="hljs-number">4</span><br>i = <span class="hljs-number">0</span><br><br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">10</span>):<br>    data = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>    <span class="hljs-keyword">if</span> data <span class="hljs-keyword">not</span> <span class="hljs-keyword">in</span> arr:<br>        arr[i] = data<br>        i = (i+<span class="hljs-number">1</span>) % <span class="hljs-number">4</span><br>    <span class="hljs-built_in">print</span>(*arr, end=<span class="hljs-string">&#x27; \n&#x27;</span>)<br></code></pre></td></tr></table></figure>]]>
    </content>
    <id>https://chuen666666.com/TQC-%E9%A1%8C%E5%BA%AB%E3%80%8C%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80%EF%BC%88%E7%AC%AC%E4%BA%8C%E7%89%88%EF%BC%89%E3%80%8D%E2%80%94%E2%80%94Python%E9%A1%8C%E8%A7%A3/</id>
    <link href="https://chuen666666.com/TQC-%E9%A1%8C%E5%BA%AB%E3%80%8C%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80%EF%BC%88%E7%AC%AC%E4%BA%8C%E7%89%88%EF%BC%89%E3%80%8D%E2%80%94%E2%80%94Python%E9%A1%8C%E8%A7%A3/"/>
    <published>2026-05-09T14:51:26.000Z</published>
    <summary>TQC+ 在 Code Judger 題庫的「程式語言（第二版）」的 Python 解</summary>
    <title>TQC+ 題庫「程式語言（第二版）」——Python 題解</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="程式" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/"/>
    <category term="專案" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/%E5%B0%88%E6%A1%88/"/>
    <category term="筆記" scheme="https://chuen666666.com/tags/%E7%AD%86%E8%A8%98/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="心得" scheme="https://chuen666666.com/tags/%E5%BF%83%E5%BE%97/"/>
    <category term="網站" scheme="https://chuen666666.com/tags/%E7%B6%B2%E7%AB%99/"/>
    <category term="VitePress" scheme="https://chuen666666.com/tags/VitePress/"/>
    <category term="機械手臂" scheme="https://chuen666666.com/tags/%E6%A9%9F%E6%A2%B0%E6%89%8B%E8%87%82/"/>
    <content>
      <![CDATA[<p>這篇同樣其實發得有點晚，應該說晚非常多，因為這東西我們大約從學測前就開始規劃、學測後就著手製作、三月中旬就製作完成並掛上校網了，而再看這篇文章的發布時間，<del>算了，還是別看了</del>。</p><h2 id="背景介紹"><a href="#背景介紹" class="headerlink" title="背景介紹"></a>背景介紹</h2><p>我們學校（北市陽明高中）買了兩台達明機械手臂給我們玩，放置在圖書館。學校以前有請一位達明的員工來特別教我們 AI 班的人操作手臂，以及參與達明官方辧的機械手臂競賽，我們就曾在賽中取得過銅獎。</p><p>之後，我又被老師邀請去教了下一屆一些想參賽的學弟妹手臂，不過因為比賽規定一間學校最多錄取兩隊，因此雖然報名人數眾多，但規則只能讓最多四人（一隊兩人）進決賽，好在他們夠爭氣，分別拿下了金和銀，實在是相當優秀。</p><p>同一時間，我們學校的結構也發生了重大的改變。一是原本幫我們買手臂和管手臂的圖書館主任<strong>施芳斳</strong>離開了我校，升去了建中，由我們前導師和前 AI 班老師的<strong>王淵聖</strong>接任；二是達明方決定不再派人來教我們手臂了，取而代之的是，讓我們學校的老師前去受訓，因此教學的工作就轉變到了我校唯一受訓過的工程設計老師<strong>徐嘉靖</strong>接手。</p><p>因為圖書館主任不再接 AI 班，因而對手臂的關注度顯著降低，我們決定用自己的力量來將手臂「傳承」下去。正當我把這個想法告訴陳宥羲（我同學兼 AI 班成員，即 <a href="http://discordapp.com/users/1462992192867143933">@哈哈哈</a>）和陳宇祐（我得銅獎那次的隊友，即 <a href="https://www.instagram.com/uiz20080710">@柚子</a>）時，剛好嘉靖老師也有這個想法，主動找到了我們，希望我們擔任教學的角色，於是我們一拍即合，當即開始規劃教臂的教學事宜。</p><h2 id="規劃"><a href="#規劃" class="headerlink" title="規劃"></a>規劃</h2><p>這個部分還真的蠻感謝嘉靖老師的，畢竟我們一開始只是有「製作教材」這個想法而已，不愧還是當老師的有教學經驗，在他的建議下，我們把教材分成了<strong>初階、中階與高階</strong>三種難度。</p><p>其實製作教材只是我們的第一步，也就是有系統地讓機械手臂可以傳承下去，未來包含教導新的 AI 班機械手臂，以及培訓選手去參加比賽外，也得規劃一套制度能讓手臂傳承下去。</p><h2 id="網站架構"><a href="#網站架構" class="headerlink" title="網站架構"></a>網站架構</h2><p>我是使用 VitePress 架構來建立這個教學網站的，如同前面所說的，我分成了初階、中階和高階，這也為我後面構思教材內容起到了很大的幫助，讓整個教材整體顯得更有規劃和系統。此外，我也為網站製作了「網站說明」、「關於我們」、「歷屆達明競賽獲獎」、「忘記密碼或需要協助？」頁面，雖然全都是用 MD 檔建立，不過全部寫起來也是相當費時的。</p><p>值得一提的是，除了內容使用 MD 之外，我也使用了 mts 和 vue 檔來製作進入網站時的密碼畫面，並使用 SHA-256 加密，讓它在原始碼中無法直接被看到，這樣一個製作網站的技術和思路，的確是我第一次接觸，也算是學到了一些東西。</p><img src="/img/TM_textbook_lock.png" class="" title="教材密碼頁"><h2 id="成果"><a href="#成果" class="headerlink" title="成果"></a>成果</h2><p>在經歷了長時間閱讀官方文件、結合自己的經驗以及實際到手臂上做驗證的過程之後，我們終於把我們的內容生出來了，實在是花了我相當多的時間，而這之中也非常感謝我的兩位共同製作人和冠軍學妹（郭羿攸和鄔語珊）的協助，更是感謝嘉靖老師的大力支持。</p><img src="/img/TM_textbook_home.png" class="mb-4" title="教材首頁"><p>架設好網站之後，我們還特地跑去找了我們學校的系統管理師，並取得了他的同意將我們的網站放上校網，方便未來的學弟妹可以找到網站並學習，在此也非常感謝我們學校的系統管理師，同意我們這個瘋狂的舉動。</p><img src="/img/TM_textbook_school_web.jpg" class="" title="網站被放上校網"><h2 id="感謝"><a href="#感謝" class="headerlink" title="感謝"></a>感謝</h2><p>雖然在上面的文章以及網站中其實就已經有致謝的部分了，不過在此我還是想再次感謝以下這些人對這個網站、手臂和對我製作這個網站的支持：</p><ul><li>前圖書館主任<strong>施芳斳</strong>：購買並管理手臂</li><li>圖書館主任<strong>王淵聖</strong>：管理手臂</li><li>生活科技專科教師<strong>徐嘉靖</strong>：邀請並合作教學內容、提供意見</li><li>系統管理師<strong>朱秀勇</strong>：將網站放上校網</li><li>陽明高中參賽獲獎學生<strong>郭羿攸</strong>和<strong>鄔語珊</strong>：提供許多意見、協助開發</li><li>製作團隊的伙伴<strong>陳宥羲</strong>和<strong>陳宇祐</strong>：共同製作內容、一同操作手臂驗證內容</li><li>未來所有對手臂有熱愛、願意付出的各位</li></ul>]]>
    </content>
    <id>https://chuen666666.com/%E7%82%BA%E4%BA%86%E6%95%99%E5%AD%B8%E5%BC%9F%E5%A6%B9%E6%A9%9F%E6%A2%B0%E6%89%8B%E8%87%82%EF%BC%8C%E6%88%91%E5%81%9A%E4%BA%86%E4%B8%80%E5%80%8B%E7%B6%B2%E7%AB%99/</id>
    <link href="https://chuen666666.com/%E7%82%BA%E4%BA%86%E6%95%99%E5%AD%B8%E5%BC%9F%E5%A6%B9%E6%A9%9F%E6%A2%B0%E6%89%8B%E8%87%82%EF%BC%8C%E6%88%91%E5%81%9A%E4%BA%86%E4%B8%80%E5%80%8B%E7%B6%B2%E7%AB%99/"/>
    <published>2026-04-03T14:21:11.000Z</published>
    <summary>為了教陽明高中 AI 班的學生用機械手臂，我用 VitePress 架了一個教學網站</summary>
    <title>為了教學弟妹機械手臂，我做了一個網站</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="心得" scheme="https://chuen666666.com/categories/%E5%BF%83%E5%BE%97/"/>
    <category term="活動" scheme="https://chuen666666.com/categories/%E5%BF%83%E5%BE%97/%E6%B4%BB%E5%8B%95/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="活動" scheme="https://chuen666666.com/tags/%E6%B4%BB%E5%8B%95/"/>
    <category term="SITCON" scheme="https://chuen666666.com/tags/SITCON/"/>
    <category term="高中生計算機年會" scheme="https://chuen666666.com/tags/%E9%AB%98%E4%B8%AD%E7%94%9F%E8%A8%88%E7%AE%97%E6%A9%9F%E5%B9%B4%E6%9C%83/"/>
    <category term="Jam The Chaos" scheme="https://chuen666666.com/tags/Jam-The-Chaos/"/>
    <content>
      <![CDATA[<p>這次參加 <strong>SITCON 學生計算機年會</strong>活動真的是相當有意思，要不是跟著特選群的大家，我大概無法這麼早就接觸到如此大規模和有趣的活動，於是我決定分享此次活動的過程和心得。</p><div class="note note-info">            <p><a href="http://discordapp.com/users/1462992192867143933">@哈哈哈</a> = 陽明電神<br><a href="https://blog.ldn970110.com/">@LDN</a> = 才不是蘿莉控</p>           </div><h2 id="動機"><a href="#動機" class="headerlink" title="動機"></a>動機</h2><p>其實參加這次活動，主要是特選群的人在揪，基本上這些活動資訊就算我不主動接觸，<a href="https://xieserver.com/">@閔捷</a>、<a href="https://www.yilin0121.com/">@郭10</a>、<a href="https://blog.ldn970110.com/">@LDN</a> 等人都還是會幫忙宣傳，上一次的 COSCON 我已經沒參加到了，於是在看到這次的 SITCON 2026 時，我沒有過多猶豫，當即決定參加。</p><p>SITCON 光看報名官網，就感覺應該是一個規模不小的活動了，但最讓我驚訝的是，如此盛大的活動，竟然是免費參加的，只要事前有去官網領票，就能夠免費參加，實在是相當不錯。資圈或特選的大家，這種如此盛大的活動自然是不用我幫忙宣傳了，不過我這次還去揪了 <a href="http://discordapp.com/users/1462992192867143933">@哈哈哈</a> 一同參加，雖然他對程式不熟、非特選人、沒參加過類似的活動，不過他其實原本是有意願加入資工系的（但後來繁星分數不夠，去了成大測量）。</p><h2 id="通勤、會合、入場"><a href="#通勤、會合、入場" class="headerlink" title="通勤、會合、入場"></a>通勤、會合、入場</h2><p>我們這次活動舉辦於中央研究院，一個連共享機車都不在服務區的地方，因此這次主辦方有在捷運南港展覽館站提供每 15 分鐘一班的接駁車，通勤方面其實還算蠻方便的。</p><p>因為我們這群比較熟的人，有人住新北、有人住高雄、有人住台中，我們到達時間都不一樣，所以這次我只有和 <a href="http://discordapp.com/users/1462992192867143933">@哈哈哈</a> 相約在捷運站，一起搭接駁車去到會場。</p><p>到了中研院，實際上離實際要進入還有一段時間，因為副總統要來參加開場的關係，所有要進入會場者，都要經過安檢，又因為人數多，其實這部分算是花費了不少時間。</p><p>進入 R0 廳後，我看到了 SITCON 的 TG 群上有人說可以用 433.500 MHz 在會場內進行無線電通聯，不過因為我的無線電前一陣子才驗機過，頻率就只能調 144~146 MHz 和 430~432 MHz，因此我還在場內找到了一個看起來像無線電大佬的人，幫我擴了頻。不過雖然說我幾乎整天都守聽 433.500 MHz，但只有開場前聽到幾聲說話聲，後來就沒有人再說過話了。</p><h2 id="開場"><a href="#開場" class="headerlink" title="開場"></a>開場</h2><p>R0 廳非常大，坐位和音樂規模不相上下，而每個位子上有插頭和類似國會那種麥克風，這裡應該就是平時中研院的人開會的地方了吧？</p><p>一開始主持開幕的是本次 SITCON 的總召，不過看他的反應，應該是緊張的要死，不過面對大約 1400 人的大場面，緊張也是人之常情了，之後他們也邀請了 SITCON 第一屆的總召，很明顯能看出來，他在主持方面應該是有相當豐富的經驗。不過開幕式的重頭戲，還得提到我們的副總統蕭美琴，這次副總統的出席讓我很是意外，因為我一開始其實不知道這個活動的規模有這麼大。</p><p>在副總統演講後，後面的講者是一個來自「報導者」的記者，和我們講了許多關於新聞媒體的問題、閱聽人的問題、記者與 AI 的問題等等，這也是今天的議程中，少數比較沒有技術門檻的議程了。他的演講其實講得還不錯，感覺是個很有水準的新聞人，唯一的問題大概就是<del>那個簡報用純白色背景，在大螢幕上和遠燈也沒什麼區別了</del>。</p><h2 id="中間行程"><a href="#中間行程" class="headerlink" title="中間行程"></a>中間行程</h2><p>在開場結束後，我們就開始了自己一整天的行程，我們大概有在特選群的伺服器裡面事先得知了誰會來，所以後面在找人時也算蠻快的，再加上雖然會場有好幾層樓，但偶到熟人的機率在一整天的人來說，其實還是頗大的。</p><p>但因為我們人數眾多，所以我們倒也沒有整天都是一群人在活動，我們從最開始十幾二十人的大團隊，後面因為每個人想聽的議程、想去的地方、想找的人都不同，所以到後來大概也只剩下我、<a href="https://www.yilin0121.com/">@郭10</a>、<a href="http://discordapp.com/users/1462992192867143933">@哈哈哈</a>、<a href="https://www.youtube.com/@Wy-killlllllll-yyy">@Wy</a>、<a href="https://icecookies1017.github.io/">@雪餅</a> 一起行動了，一開始還走在一起或遇見的其他人，早就已經不知道跑哪去了。</p><p>午餐時間大概是我們聚集最多人的時候了，除了前面提到的人之外，<a href="https://blog.ldn970110.com/">@LDN</a>、<a href="https://xieserver.com/">@閔捷</a>、<a href="https://github.com/kohiro961021">@kohiro</a>、<a href="https://qwo877.github.io/me/">@匿名用戶9487</a>、<a href="https://www.threads.com/@young._.qwq1945">@人</a>、<a href="https://www.instagram.com/baihufox">@baihu</a>，這些人大多數和我在 SITCON 之前其實就見過面了，不過一次聚集了這麼多人，對我來說還是第一次，對於在特選群上都超級活網的大家，聊起天來也是相當愉快。</p><p>今天聽的議程中，我比較有興趣的是<a href="https://sitcon.org/2026/agenda/023219/">《語言模型的認知、認同與對齊》</a>，除了這種 AI 倫理是我比較感興趣的主題外，這個講者的口才也是真的很不錯，全程 40 分鐘聽下來都非常有趣，也讓我學到了不少東西，例如 GPT 方面的知識（我以前研究比較多 BERT），以及議程探討的主題——AI 認同問題。</p><div style="max-width: 350px; margin: 0 auto;"><div id="dplayer0" class="dplayer hexo-tag-dplayer-mark" style="margin-bottom: 20px;"></div><script>(function(){var player = new DPlayer({"container":document.getElementById("dplayer0"),"video":{"url":"/video/poopooman_whiteboard.mp4"}});window.dplayers||(window.dplayers=[]);window.dplayers.push(player);})()</script></div><h2 id="先跑了（晚餐局）"><a href="#先跑了（晚餐局）" class="headerlink" title="先跑了（晚餐局）"></a>先跑了（晚餐局）</h2><p>其實我們沒有把完整個 SITCON 參加完，最後面的 Lightning Talk（閃電講）由於時間關係，我們決定不聽完先走（事後發現這似乎是一個錯誤的決定），不過因為回程並沒有接駁車，他們想出了一個又快又不貴的通勤方案：我們一共十人，於是分別叫一台六人和一台四人的 Uber 到高鐵站（平均 $40）後，再坐高鐵自由坐從南港回台北（$35）。</p><div style="max-width: 350px; margin: 0 auto;"><div id="dplayer1" class="dplayer hexo-tag-dplayer-mark" style="margin-bottom: 20px;"></div><script>(function(){var player = new DPlayer({"container":document.getElementById("dplayer1"),"video":{"url":"/video/baihu_stuck_in_car.mov"}});window.dplayers||(window.dplayers=[]);window.dplayers.push(player);})()</script></div><p>我們的晩餐訂的是六點的和民（站前），不過因為通勤方式各異，人從六點到七點間陸陸續續的來，六點時也才差不多到了一半的人而已。我們一共有大概 20 個人來，我和我女友、<a href="https://qwo877.github.io/me/">@匿名用戶9487</a>、<a href="https://bryan0324.github.io/">@草貓</a> 坐一桌，而 <a href="http://discordapp.com/users/1462992192867143933">@哈哈哈</a> 則是坐在我右邊，距離很近的旁邊那桌。因為我們提早訂位之外，還有提早訂餐，因此我們到的時候，餐基本上都準備好要上了，場面顯得相當混亂，<a href="https://xieserver.com/">@閔捷</a>（主揪）還得一邊確認誰訂了什麼，一邊確認誰坐哪裡，基本上在進入餐廳的頭十分鐘，他沒有閒下來過。</p><p>雖然在這樣的人數下，我和那幾個比較熟的朋友都坐得比較遠，不過他們（像是 <a href="https://www.yilin0121.com/">@郭10</a>、<a href="https://github.com/kohiro961021">@kohiro</a> 等人）也時不時就會來串桌，所以其實和大家都聊得蠻開心的。我們這桌中，<a href="https://qwo877.github.io/me/">@匿名用戶9487</a> 也算是老熟人了，我們曾在資訊月競賽和清大 HPC 營隊中遇到過，不過 <a href="https://bryan0324.github.io/">@草貓</a> 倒是我們第一次遇到，因此他比較少參與到我們的話題就是了。</p><img src="/img/sitcon_dinner_order.jpg" class="d-block mx-auto mb-4" width="300" title="SITCON 訂餐名單"><p>今天全場最炸裂的事情，大概屬 <a href="https://www.hhk.one/">@康康</a> 請客，在我們用餐到一半之時，<a href="https://www.hhk.one/">@康康</a> 突然起身說：「今天全場我請，希望大家吃得開心。」這實在是讓我們很意外，雖說聽說過 <a href="https://www.hhk.one/">@康康</a> 家裡很有錢，但會請大概 20 個人吃飯，倒也是我沒有意料到的。</p><img src="/img/sitcon_dinner.jpg" class="d-block mx-auto mb-4" width="700" title="SITCON 晚餐合照"><img src="/img/sitcon_dinner_2.JPG" class="d-block mx-auto mb-4" width="700" title="SITCON 晚餐合照 2"><p>飯後，我們還前往了西門的一家酒吧，不過我還不是最菜的——這是 <a href="http://discordapp.com/users/1462992192867143933">@哈哈哈</a> 第一次喝酒。其實去酒吧的只有一部分人，包含了我和我女友、<a href="http://discordapp.com/users/1462992192867143933">@哈哈哈</a>、<a href="https://wyyyyy812-tech.github.io/">@Wy</a>、<a href="https://www.hhk.one/">@康康</a>、<a href="https://www.yilin0121.com/">@郭10</a>、<a href="https://xieserver.com/">@閔捷</a>、<a href="https://blog.ldn970110.com/">@LDN</a>、<a href="https://icecookies1017.github.io/">@雪餅</a>、<a href="https://www.instagram.com/baihufox">@baihu</a>、<a href="https://www.instagram.com/hush._.0319">@何煦人也</a>，共十人，其他人就自己先回家了。作為 <a href="http://discordapp.com/users/1462992192867143933">@哈哈哈</a> 的第一次飲酒，<a href="https://www.hhk.one/">@康康</a> 就幫他點了杯 shot，實在是有夠猛，好在他還撐得住。我則點了一杯調酒，在喝完酒後，忘記談到了什麼，<a href="https://xieserver.com/">@閔捷</a> 突然說他的數學段考還沒讀，內容正好是我擅長的微積分，於是酒吧出現了非常荒唐的一幕：我和 <a href="https://www.instagram.com/hush._.0319">@何煦人也</a> 教起了 <a href="https://xieserver.com/">@閔捷</a> 微積分。</p><img src="/img/calculus_in_bar.jpg" class="d-block mx-auto" width="350" title="在酒吧算微積分"><blockquote><p>BTW，這題是 $\displaystyle\lim_{x\to0}x^2(2^{\frac1x}-2^{\frac{1}{1+x}})$，答案是 $\ln 2$，<del>計算過程留作課後習題</del>。</p></blockquote><p>如同你猜得那樣，酒吧局一樣由 <a href="https://www.hhk.one/">@康康</a> 買單，搞得我都有點對不起他了，他甚至多付了不少，給我們留了很多扣打點餐，而他自己則提前離開了。提早離開的還有 <a href="https://wyyyyy812-tech.github.io/">@Wy</a>，不過他比 <a href="https://www.hhk.one/">@康康</a> 還要更早，而他離開時，因為已經太晚了，<a href="https://www.hhk.one/">@康康</a> 直接幫他訂了一台車回台中的車（四千多塊），看得我那是目瞪口呆。喝完後，因為女友已經看起來有點醉了，我訂了台 Uber，想先送他回家後再自己搭捷運回家，後來因為又發現 <a href="https://icecookies1017.github.io/">@雪餅</a> 順路，於是我們便用 Uber 設定多個停靠點的方式，順便也把他送回家了。</p><h2 id="總結"><a href="#總結" class="headerlink" title="總結"></a>總結</h2><p>這次 SITCON 活動還真的是解鎖了許多人生成就，不僅和一堆電神齊聚一堂，互相交流，更是參加了一個體驗十分好的聚餐和酒局，可以說是相當充實了。而 <a href="http://discordapp.com/users/1462992192867143933">@哈哈哈</a> 在和我聊起這一事時，也表示開了眼界，看到和自己年齡沒有差很多的人開公司、寫論文、做一堆自己看都看不懂的研究，好像把自己的眼界又放遠了些，這也正是我初入特選和資訊圈的感受，「知道自己不知道」才是進步的開始。總之，我很不後悔自己踏入這個圈子，結識了這麼一群專長略為不同，但走在同一條道路上一起努力的夥伴們。</p>]]>
    </content>
    <id>https://chuen666666.com/%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%8F%83%E5%8A%A0SITCON%E5%BF%83%E5%BE%97/</id>
    <link href="https://chuen666666.com/%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%8F%83%E5%8A%A0SITCON%E5%BF%83%E5%BE%97/"/>
    <published>2026-03-28T17:23:18.000Z</published>
    <summary>記錄一下我第一次和一大群朋友參加 SITCON 2026 的心得</summary>
    <title>第一次參加 SITCON 心得</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="心得" scheme="https://chuen666666.com/categories/%E5%BF%83%E5%BE%97/"/>
    <category term="執照或檢定" scheme="https://chuen666666.com/categories/%E5%BF%83%E5%BE%97/%E5%9F%B7%E7%85%A7%E6%88%96%E6%AA%A2%E5%AE%9A/"/>
    <category term="心得" scheme="https://chuen666666.com/tags/%E5%BF%83%E5%BE%97/"/>
    <category term="駕照" scheme="https://chuen666666.com/tags/%E9%A7%95%E7%85%A7/"/>
    <category term="汽車" scheme="https://chuen666666.com/tags/%E6%B1%BD%E8%BB%8A/"/>
    <category term="小客車" scheme="https://chuen666666.com/tags/%E5%B0%8F%E5%AE%A2%E8%BB%8A/"/>
    <category term="手排汽車" scheme="https://chuen666666.com/tags/%E6%89%8B%E6%8E%92%E6%B1%BD%E8%BB%8A/"/>
    <content>
      <![CDATA[<p>這篇只是一個心得分享，每個駕訓班教法和場地可能有所出入，請以你教練教你的為主。然後這篇文章似乎出得有點晚了，最近的確事情比較多，小拖了一下。</p><h2 id="事前"><a href="#事前" class="headerlink" title="事前"></a>事前</h2><p>其實我汽車和機車是一起體檢、一起報駕訓班的，不過因為汽車駕訓班不像機車只要一週，而是需要整整一個月，<del>加上最近比較懶</del>，所以這篇才比<a href="\普通重型機車駕照到手-上路心得">機車考照那篇</a>還慢這麼多出來。</p><p>不像機車，汽車考照不需要事先做像是危險感知測驗那種東西，只需要辦理學習駕照即可（駕訓班通常會代辦），學習駕照其實你自己大概也感受不到，畢竟現在都已經電子化了，不會拿到實體學習駕照。</p><h2 id="術科（場考）"><a href="#術科（場考）" class="headerlink" title="術科（場考）"></a>術科（場考）</h2><h3 id="熟悉車輛"><a href="#熟悉車輛" class="headerlink" title="熟悉車輛"></a>熟悉車輛</h3><p>其實我覺得現在的駕訓班已經有一套很有系統性的學車流程了，例如先在假方向盤上教你如何轉方向盤（三九點式握勢）和踩離合（腳跟不能落地）；在真的去跑考場前，教練會叫你先去前進後退熟悉車輛、練 S 型；練直線加速和上坡起步前，會先把車停著熄火，讓你自己練換檔（包含如何踩和放離合器）以及踩油門和煞車的感覺等等，相比以前那種教練示範一次就讓你自己去練的方式，顯然現在已經有更系統性的方式來教學了。</p><h3 id="內場"><a href="#內場" class="headerlink" title="內場"></a>內場</h3><p>內場也就是我們常說的 <strong>S 型（曲線進退）、路邊停車、倒車入庫</strong>，現在的駕訓班應該都會從 S 型開始教起，因為它是最能讓你熟悉車感（距離感）的項目之一，所以一般來說，都會從場地外駕訓班自己畫在地上的 S 型開始練起。因為內場基本上都不需要用到油門，通常在學這部分時，教練都會拿一個易開罐把油門塞起來。</p><p>S 型基本上屬於內場最難的項目了，所以通常練完後，教練就會教你直接進考區練，順便一起把路邊停車和倒車入庫一起教你，不過通常這兩個都是直接套公式開，所以基本上也不會到太難，抓幾下感覺，剩下就靠熟悉度了。</p><h3 id="外場（環場）"><a href="#外場（環場）" class="headerlink" title="外場（環場）"></a>外場（環場）</h3><p>這裡其實才是考試最開始的地方，不過因為它的難度又比內場難，所以會比內場晚一點教。外場項目多了一些，分別是<strong>行人穿越道、鐵路平交道、直線加速、上坡起步、交通號誌</strong>。難的地方一共就兩個，一是直線加速，要在不壓管（壓線）的情況下，在 45 m 內換到三檔；一是上坡起步，堪稱全場最難的東西，我們甚至是先教完道考後，才回來教上坡起步的。</p><p>直線加速其實也不會到很難，因為雖然要換去三檔，但其實可以不用踩油門，只要記得換檔順序是「離合踩到底 &rarr; 換檔 &rarr; 離合放 1/3 &rarr; 離合放 1/2 &rarr; 離合全放」的順序即可，口訣就是「1/3 &rarr; 1/2 &rarr; 全離合」和「打檔不修正（方向盤）、修正不打檔」兩個而已，如果事前教練有先讓你在空地練換檔，那這部分基本上一下就能上手了。有一個技巧倒是可以說一下，因為在二檔切三檔時，其實很容易打錯檔（至少我們的車型是這樣啦），所以打三檔時，可以先從二檔推回中間（空檔），水平往左推一下確認回到正中央，再垂直向上推，就一定能打進三檔了。</p><p>而上坡起步就比較有難度了，首先，上坡前必須得換回一檔，然後踩油門上坡（踩油門前必須離合全放），到了指定位置後煞停（記得煞車要踩離合，不然會熄火），再拉手煞、放開腳煞，如果手煞有拉好，車子應該就不會滑下去了，接著到了最難的一步，開始慢慢放開離合器，放到車子處於熄火邊緣但不能熄火的狀態，腳定住不要動，也因為是這種狀態，車子一定會非常的抖，你可以大概從它夠不夠抖來判斷有沒有放夠多（同時也要看轉速表來判斷），轉速足夠低後，再踩一點油門，讓轉速上來到一千多（不超過 2000）並腳定住不要動，最後放開手煞，如果離合放夠多，車子應該就會慢慢往上走了，相反，若離合放太少，車子就可能往後滑或停著不動。這裡也有一個小巧技可以提，就是因為很老的手排車通常很難放（放下前要往上提，但要往上提很費力），再加上車子抖動，你的腳其實很難定在一個位置定位不動，從而導致熄火，因此其實你可以在拉完手煞後，就先把手煞向上拉並按住安全鈕，之後要放下時，直接往下放即可，此方法親測非常好用。</p><p>其他部分就是一些細節，例如過路口和轉彎未轉頭察看、未打燈等，現在都是扣 32 分，非常重，考試時千萬不要忘記這個部分了。</p><h2 id="術科（道考）"><a href="#術科（道考）" class="headerlink" title="術科（道考）"></a>術科（道考）</h2><p>現在的駕照考試分成三關，分別是<strong>筆試、場考、道考</strong>，只要前一關沒過，就不能繼續考，因此道考是最終關卡，同時也是最有挑戰性的關卡。道路駕駛的車輛一律都是用自排車，即使你一開始報手排，所以不用擔心在路上熄火這種問題。道駕就是真的要你實際開上路，沿著指定路線開一圈再回去，唯一只會有一關是<strong>路邊停車</strong>。</p><p>對於我現在一個考過駕照也真的上路過的人而言，我其實蠻感謝道考這種制度的，因為有實際開上路過好幾次了，在我拿到駕照後反而很快就能上手，但代價就是，剛開始學道駕時壓力還真的不小，畢竟場內可以自己練，但上路教練一定會坐在你右邊看著你。</p><p>道考的考點基本上就是不要走錯路、違反任何交通規則即可，其實它有一關是路邊停車，不過與內場不同，它不要求停到格子裡，只看你有沒有停離路緣小於 60 cm（沒有的話扣 16 分），而且要連三個空的小客車格或連兩個空的大客車格才考，否則都是回場內再考，那就簡單很多啦，只要不要撞安全島（扣 32 分），就算沒停好被扣 16 分也都還能過。</p><h2 id="術科（全場）"><a href="#術科（全場）" class="headerlink" title="術科（全場）"></a>術科（全場）</h2><p>這部分是比較容易被扣分的，而且通常都扣很重，也就是例如上車前未繞車檢查、未檢查儀表、漏打方向燈這種，通常都是 32 分直接下車，場考或道考都一樣。</p><p>開車前檢查的順序（考試時建議讀出來，一是怕緊張漏做，二是讓考官不要抓你有做但他沒看到的東西），不過如果這部分和你教練教的相異，請以教練為主：</p>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-bbc85144" role="button" aria-expanded="false" aria-controls="collapse-bbc85144">        <div class="fold-arrow">▶</div> 行車前檢查      </div>      <div class="fold-collapse collapse" id="collapse-bbc85144">        <div class="fold-content">          <ol> <li>上車前繞車檢查：檢查胎紋胎壓、檢查車底有無異物（四輪 + 四面的底都要）</li> <li>兩段式開車門上車</li> <li>調整座椅、頭枕、椅背</li> <li>繫安全帶</li> <li>試踩煞車、離合</li> <li>檢查檔位是否在空檔（自排則 P 檔）、檢查手煞</li> <li>開電</li> <li>調整後視鏡、室內鏡</li> <li>檢查儀表：溫度、油量、煞車、充電、機油（手要指對圖標，口訣：<strong>溫油殺蟲劑</strong>）</li> <li>發動（發動時一定要在空檔 + 拉手煞）</li> <li>打左燈</li> <li>打一檔（自排則 D 檔）、放手煞</li> <li>左右轉頭察看</li> <li>出發</li> </ol>         </div>      </div>    </div><p>過程中，只要轉彎都要打燈，只要打燈、過路口、過紅綠燈都要轉頭，少做一個都是扣 32 分，相當重。測驗完成後，也要記得「打空檔（自排則 P 檔）、拉手煞 &rarr; 熄火 &rarr; 解安全帶 &rarr; 兩段式開車門下車 &rarr; 關車門」。</p><h2 id="學科（筆試）"><a href="#學科（筆試）" class="headerlink" title="學科（筆試）"></a>學科（筆試）</h2><p>機車的筆試即便刪除了是非題，仍相當簡單，甚至有機率可以裸考過；但汽車題的難度就明顯高上了不少，要想裸考過幾乎是不太可能，甚至我們教練是要求我們要「連續十次模擬測驗 90 分以上」（<del>雖然我到最後也沒完成這個作業就是了</del>），用的 APP 就和機車那篇提到的一樣：<a href="https://apps.apple.com/tw/app/%E8%80%83%E9%A7%95%E7%85%A7-%E8%87%BA%E7%81%A3%E9%A7%95%E7%85%A7%E8%80%83%E9%A1%8C%E5%88%86%E6%9E%90%E8%88%87%E8%A9%B3%E8%A7%A3/id1018150472">考駕照</a>，如果是 Android 就找其他類似的即可，反正就是靠刷題來背題目就對了。</p><h2 id="結果"><a href="#結果" class="headerlink" title="結果"></a>結果</h2><ul><li>筆試：90</li><li>場考：82</li><li>道考：84</li></ul><img src="/img/driving_license.jpg" class="" title="手排汽車駕照"><h2 id="上路"><a href="#上路" class="headerlink" title="上路"></a>上路</h2><p>其實上路這個部分，反而和我第一次騎機車相比，我沒有那麼緊張，這也得益於道駕的訓練，唯一不同的是，我們家的休旅車相比駕訓班的轎車還是高了不少，而油門和方向盤則因為每台車都有些許出入而一起成為了我要重新熟悉的東西。</p><p>第一次練車，我們就跑去新北八里練，去程還是我媽開去（他也想練），到了後，我們找了一間咖啡廳，讓我開去，結果才發現它是在山上，於是就這樣，第一次開自家車上路的我，直接來了個地獄難度——山路，除了難開的上下山路外，回程因為也是我開，因此我還開上了快速道路，以及晚上車流量不小的道路，我的第一次練車，就把山路、快車、夜晚、車多都練了，可以說除了雨天外，幾乎都遇到了。</p><p>這次練車後，我後來也常開車載我女友回家，我對我們家的車子也愈來愈熟練了，希望我可以在近期多練些，到了暑假能夠載朋友出去玩，以及上大學後能熟練地開自己的車通勤。</p>]]>
    </content>
    <id>https://chuen666666.com/%E7%B5%82%E6%96%BC%E5%8F%AF%E4%BB%A5%E9%96%8B%E8%BB%8A%E8%BB%8A%E4%BA%86%EF%BC%81%E6%89%8B%E6%8E%92%E6%B1%BD%E8%BB%8A%E9%A7%95%E7%85%A7%E8%80%83%E5%8F%96%E5%BF%83%E5%BE%97/</id>
    <link href="https://chuen666666.com/%E7%B5%82%E6%96%BC%E5%8F%AF%E4%BB%A5%E9%96%8B%E8%BB%8A%E8%BB%8A%E4%BA%86%EF%BC%81%E6%89%8B%E6%8E%92%E6%B1%BD%E8%BB%8A%E9%A7%95%E7%85%A7%E8%80%83%E5%8F%96%E5%BF%83%E5%BE%97/"/>
    <published>2026-03-27T13:11:47.000Z</published>
    <summary>分享我參加駕訓班開始到考取到手排駕照的過程和心得</summary>
    <title>終於可以開車車了！手排汽車駕照考取心得</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="心得" scheme="https://chuen666666.com/categories/%E5%BF%83%E5%BE%97/"/>
    <category term="執照或檢定" scheme="https://chuen666666.com/categories/%E5%BF%83%E5%BE%97/%E5%9F%B7%E7%85%A7%E6%88%96%E6%AA%A2%E5%AE%9A/"/>
    <category term="心得" scheme="https://chuen666666.com/tags/%E5%BF%83%E5%BE%97/"/>
    <category term="駕照" scheme="https://chuen666666.com/tags/%E9%A7%95%E7%85%A7/"/>
    <category term="機車" scheme="https://chuen666666.com/tags/%E6%A9%9F%E8%BB%8A/"/>
    <category term="普通重型機車" scheme="https://chuen666666.com/tags/%E6%99%AE%E9%80%9A%E9%87%8D%E5%9E%8B%E6%A9%9F%E8%BB%8A/"/>
    <content>
      <![CDATA[<p>其實像機車駕照這麼簡單的東西，應該是不需要我出一篇文章來和大家分享要怎麼考的，不過為了我的個網完整性，我還是決定出了這一篇文章。</p><h2 id="分類"><a href="#分類" class="headerlink" title="分類"></a>分類</h2><p>依照台灣的法規規定，機車駕照一共分成三種：</p><ul><li>輕型</li><li>普通重型</li><li>大型重型</li></ul><p>其中，大型重型機車我目前還考不了，因為報考條件需要年滿 20 歲，且持有機車駕照一年以上。而輕型和普通重型的報考條件實際上是一樣的，但普重的等級比輕型高一些，所以我推薦大家一律直接考普重，不需要去考輕型的。</p><h2 id="事前工作"><a href="#事前工作" class="headerlink" title="事前工作"></a>事前工作</h2><p>在去上駕訓班之前，或者去監理站路考之前，要記得做兩件事情：</p><ol><li>到<a href="https://hpt.thb.gov.tw/">危險感知平台</a>做完測驗</li><li>到醫院做完駕照的體檢</li></ol><p>危險感知平台是比較困難，不過可以一直重做，像我自己是做了三次才通過，上面的題目真的沒有很容易；體檢就很簡單了，不過如果真的要跑一趟醫院的話，我建議把機車和汽車的體檢一次做完，就不需要跑兩趟了。</p><h2 id="駕訓班"><a href="#駕訓班" class="headerlink" title="駕訓班"></a>駕訓班</h2><p>其實我在去上駕訓班之前，也曾經好幾次到監理站的官網去預約機車駕照考試，不過因為一直都額滿、約不到，所以最後我才決定去駕訓班。</p><p>駕訓班的考照流程，其實是先去監理站考完筆試之後，再依照各個不同的駕訓班安排（像我的駕訓班就有提供車輛載我們回去）然後再考路考。路考的部分是直接在駕訓班原場地考，所以對於平常練習很認真的同學來說，應該蠻容易的。</p><p>我的駕訓班一共會上課五天，大部分好像也都是抓這個時間，然後一天是兩個小時，所以如果有好好練的話，基本上要考到駕照應該是蠻容易的事情。所有考試時的場地和車輛，都和練習時的一樣，而且無論是考試時還是練習時，我們的駕訓班其實都有叫我們要戴護具（護膝和護肘）。</p><h2 id="筆試"><a href="#筆試" class="headerlink" title="筆試"></a>筆試</h2><p>機車在今年（114 年）1 月 31 日以後，就已經沒有是非題了，並且增加了蠻多新題，整體難度其實是有提升的，如果不讀書的話，是有機會考不過的，所以大家還是要記得準備一下新題目。不過因為像這種筆試的題目都有蠻多很白癡問題，所以我還是推薦大家可以採取「刷題」的方式來練習，這樣就可以很有效地跳過那些你早就知道的東西，並針對你原本不知道的部分去做補強。我自己會推薦使用一個手機 App 叫「考駕照」（<a href="https://apps.apple.com/tw/app/%E8%80%83%E9%A7%95%E7%85%A7-%E8%87%BA%E7%81%A3%E9%A7%95%E7%85%A7%E8%80%83%E9%A1%8C%E5%88%86%E6%9E%90%E8%88%87%E8%A9%B3%E8%A7%A3/id1018150472">Apple</a>、<a href="https://play.google.com/store/apps/details?id=net.eocbox.driverlicense">Android</a>），你可以去一直刷裡面的模擬試題，以及你曾經錯過的題目，來補強你原本不熟的地方。</p><h2 id="路考"><a href="#路考" class="headerlink" title="路考"></a>路考</h2><p>雖然路考是在自己駕訓班的場地裡面考，不過來評分的還是監理站的人，所以也不太容易出現什麼放水的問題，基本上考試當天，你就照著平常練習來走就行了，這個部分應該還是滿容易的。</p><p>至於大家說的最難的兩大魔王關——「直線 7 秒」和「直角轉彎」，我這裡也來說一下。直線 7 秒我自己的技巧就是：一開始油門催大力一點，後面就讓它慢慢滑，盡量控制在剛好 7 秒多一點點的時候通過，這樣子是最穩定的；而直角轉彎實際上我都沒有遇到什麼太大的問題，所以我其實也沒有感受到它的難點是什麼，大概就是你平常腳踏車多騎一點就會的程度吧。而其他我們在這裡提及的關卡，你們可以自己上 YouTube 或網路上搜尋，有一大堆的影片和教學，或者你直接到駕訓班學就可以了，難度真的不會到非常高，應該一下就可以上手啦。</p><h2 id="結果"><a href="#結果" class="headerlink" title="結果"></a>結果</h2><ul><li>筆試：92 分</li><li>路考：100 分</li></ul><img src="/img/motor_license.jpg" class="" title="普通重型機車駕照"><h2 id="上路"><a href="#上路" class="headerlink" title="上路"></a>上路</h2><p>其實我 WeMo、GoShare 和 iRent 都有安裝，不過我目前最常騎的還是 WeMo，因為我家裡沒有買摩托車。目前我上路的感覺是還不錯，WeMo 給我的使用體驗也還不錯，只不過和大眾運輸比起來，它理所當然是貴了不少。</p><p>WeMo 還有一個蠻好玩的體驗，就是如果你租到一台沒什麼電的車，它有可能會跟你說換電可以有優惠，這時候如果你去換電，就可以得到 30 元的減免，並且在還車時直接抵扣。我目前騎 WeMo 遇到最大的問題，大概就是有一些地方會找不到停車格因為 WeMo 在還車的時候，必須確保你是停在一個合法的地方，所以它會要求你拍照，也就是說，如果你的機車亂停而被開單了，它從照片裡面就可以找得出來你就是凶手。</p><p>其實不論是哪一家的共享機車，最重要的都還是要看你的起點和終點有沒有在它的服務範圍內，例如我的駕訓班其實就不在 WeMo 的服務範圍內，我就必須要騎到最近的 YouBike 站再還車，再借 YouBike 騎過去。</p>]]>
    </content>
    <id>https://chuen666666.com/%E6%99%AE%E9%80%9A%E9%87%8D%E5%9E%8B%E6%A9%9F%E8%BB%8A%E9%A7%95%E7%85%A7%E5%88%B0%E6%89%8B-%E4%B8%8A%E8%B7%AF%E5%BF%83%E5%BE%97/</id>
    <link href="https://chuen666666.com/%E6%99%AE%E9%80%9A%E9%87%8D%E5%9E%8B%E6%A9%9F%E8%BB%8A%E9%A7%95%E7%85%A7%E5%88%B0%E6%89%8B-%E4%B8%8A%E8%B7%AF%E5%BF%83%E5%BE%97/"/>
    <published>2026-03-08T15:29:25.000Z</published>
    <summary>我到駕訓班上了五天的課後，考取普通重型機車駕照的心得</summary>
    <title>普通重型機車駕照到手 + 上路心得</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="數學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E6%95%B8%E5%AD%B8/"/>
    <category term="筆記" scheme="https://chuen666666.com/tags/%E7%AD%86%E8%A8%98/"/>
    <category term="教學" scheme="https://chuen666666.com/tags/%E6%95%99%E5%AD%B8/"/>
    <category term="數學" scheme="https://chuen666666.com/tags/%E6%95%B8%E5%AD%B8/"/>
    <category term="微積分" scheme="https://chuen666666.com/tags/%E5%BE%AE%E7%A9%8D%E5%88%86/"/>
    <category term="微分" scheme="https://chuen666666.com/tags/%E5%BE%AE%E5%88%86/"/>
    <category term="積分" scheme="https://chuen666666.com/tags/%E7%A9%8D%E5%88%86/"/>
    <category term="極限" scheme="https://chuen666666.com/tags/%E6%A5%B5%E9%99%90/"/>
    <content>
      <![CDATA[<p>在這篇文章中，我會以新手都能聽懂的方式，來講解基礎高中微積分，並且再將它向外延伸一些，分享一些好用的技巧和有趣的題目，讓大家能夠透過這篇文章來入門微積分的世界。</p><p>如果有哪裡我寫得太難懂，或一直搞不懂的情況，歡迎主動私訊我詢問！</p><div class="note note-success">            <p>本篇筆記公式較多，手機瀏覽易跑版<br>建議使用電腦觀看以獲得最佳閱讀體驗</p>           </div><div class="note note-primary">            <p>靈感與部分資料取自微積分課程、高三上數學與 YouTube，若有侵權之疑，請主動與我聯繫！</p>           </div><h2 id="極限"><a href="#極限" class="headerlink" title="極限"></a>極限</h2><h3 id="意義"><a href="#意義" class="headerlink" title="意義"></a>意義</h3><p>「極限」指的是一個「<strong>無限逼近的過程</strong>」，例如當 $x$ 無限接近 $a$ 時，可以寫作 $x \to a$。需要特別注意的是，當 $x \to a$ 時，$x \ne a$。</p><h3 id="計算"><a href="#計算" class="headerlink" title="計算"></a>計算</h3><p>當我們在計算一個函數 $f(x)$ 在 $x \to a$ 時，我們可以寫成</p>$$\lim_{x \to a}f(x)$$<p>計算時，我們可以試著先將 $a$ 直接代入 $f(x)$，此時可能會產生三種結果：</p><ul><li>$\frac{\mathbb R}{0}$：不存在（Does not exist, D.N.E., $\nexists$）</li><li>$\frac{\mathbb R}{\mathbb R}$：即極限值的結果</li><li>$\frac 00$：不定形式（Indeterminate）</li></ul><p>前兩種都好理解，但何為不定形式？不定形式指的是「還不確定它是什麼」，也就是說還要做進一步的處理，才能得到其值。在做極限時，一共有七種不定形式：</p><ul><li>$\frac 00$</li><li>$\pm\frac{\infty}{\infty}$</li><li>$\infty-\infty$</li><li>$0\cdot\infty$</li><li>$0^0$</li><li>$1^\infty$</li><li>$\infty^0$</li></ul><p>那麼，什麼叫「進一步的處理」？其實在遇到不定形式時，我們都能夠用某種方式，將它轉換為 $\frac 00$ 或 $\pm\frac\infty\infty$ 這兩種不定形式，則此時我們就知道，原式的分子和分母必存在一個公因式可以進行約分。</p><p>約分算是其中一種處理方式，而另一種則是使用<strong>羅必達法則</strong>來處理：</p><a class="btn" href="/新手都能看懂的羅必達法則"  title="羅必達法則教學文章" target="_blank">羅必達法則教學文章</a><p>經過處理後，若仍為不定形式，則可以重覆處理，直到它不是不定形式，則此時便可求出函數的極限值。</p><h3 id="左極限、右極限"><a href="#左極限、右極限" class="headerlink" title="左極限、右極限"></a>左極限、右極限</h3><p>在處理一些比較特別的極限時，我們可以將極限拆為左極限與右極限，它的意義即為「極限值是從左側（負）或右側（正）逼近」。要注意的是，<strong>極限值必唯一</strong>，故唯有函數<strong>左極限值 = 右極限值</strong>時，極限值才存在，否則極限不存在。</p><p>舉個例子，</p>$$f(x)=\begin{cases} {x^2}, & {x<1} \\ {2x+1}, & {x\ge 1} \end{cases}$$<p>求</p>$$\lim_{x \to 1}f(x)$$<p>因為函數剛好在 $x=1$ 處斷開了，因此為了計算 $x \to 1$ 時的極限值，就得用到左右極限的概念。先來看左極限，它可以寫成 $\displaystyle\lim_{x \to 1^-}f(x)$，因為極限從左側逼近，可以把它想像成 $0.999…$，所以我們代 $x&lt;1$ 的那段，極限值就會是 $1$；再看右極限，它可以寫成 $\displaystyle\lim_{x \to 1^+}f(x)$，因為極限從右側逼近，可以把它想像成 $1.000…1$，所以代 $x \ge 1$ 那段，極限值就會是 $3$。</p><p>很明顯地，$1 \ne 3$，左右極限不相等，故極限值不存在。</p><h3 id="夾擠定律"><a href="#夾擠定律" class="headerlink" title="夾擠定律"></a>夾擠定律</h3><p>這是一個相當直觀的定律，指的是當 $x \to a$ 時，若 $g(x) \le f(x) \le h(x)$，且 $\displaystyle\lim_{x \to a}g(x)=\displaystyle\lim_{x \to a}h(x)=L$，則 $\displaystyle\lim_{x \to a}f(x)=L$。</p><h2 id="無窮"><a href="#無窮" class="headerlink" title="無窮"></a>無窮</h2><h3 id="意義-1"><a href="#意義-1" class="headerlink" title="意義"></a>意義</h3><p>無窮不是一個數，而是「<strong>無限上升</strong>」的概念，記作 $\infty$。對任意實數 $a$，它必在 $(-\infty,\infty)$ 之間，寫作 $-\infty&lt;a&lt;\infty$。</p><h3 id="運算"><a href="#運算" class="headerlink" title="運算"></a>運算</h3><p>剛才我們提到了一些包含了無窮的不定形式，現在讓我們深入了解一下無窮的運算。注意，以下條件均為「<strong>做極限</strong>」的狀態下的簡化表達，非嚴謹數學語言。</p><ul><li>$\infty \pm a=\infty$</li><li>$-\infty \pm a=-\infty$</li><li>$\infty+\infty=\infty$</li><li>$a\cdot\infty=\infty,\,a&gt;0$</li><li>$-a\cdot\infty=-\infty,\,a&gt;0$</li><li>$\infty\cdot\infty=\infty$</li><li>$\infty\cdot(-\infty)=-\infty$</li><li>$\frac{\pm a}{\infty}=0$</li><li>$\infty^r=\infty,\,r&gt;0$</li><li>$\frac{1}{\infty^r}=0,\,r&gt;0$</li><li>$\frac{\pm a}{0}=\pm\infty,\,a&gt;0$（依 $0^+$ 或 $0^-$ 決定正負號）</li><li>$a^\infty=\infty,\,a&gt;1$</li><li>$a^\infty=0,\,0 \le a &lt; 1$</li></ul><h3 id="比大小"><a href="#比大小" class="headerlink" title="比大小"></a>比大小</h3><p>雖然都是無窮，但根據函數跑去無窮的速度不同，我們仍可以對它們比大小，具體方式便是採用<strong>大 O 符號（Big-O）</strong>和<strong>小 o 符號（little-o）</strong>。</p><p>以下均比較 $f(n)$ 和 $g(n)$ 均趨近無窮（$n \to \infty$，且兩函數亦逼近無窮）時的情況來說明。</p><h4 id="大-O"><a href="#大-O" class="headerlink" title="大 O"></a>大 O</h4><p>當 $f(n)$ 跑去無窮的速度<strong>慢於或等於</strong> $g(n)$ 時，可以寫成</p>$$f(n)=O(g(n))$$<h4 id="小-o"><a href="#小-o" class="headerlink" title="小 o"></a>小 o</h4><p>當 $f(n)$ 跑去無窮的速度<strong>小於</strong> $g(n)$ 時，可以寫成</p>$$f(n)=o(g(n))$$<h4 id="做法"><a href="#做法" class="headerlink" title="做法"></a>做法</h4><p>我們可以把兩個要比大小的函數放到一個分數的分子和分母（$\displaystyle\lim_{n \to \infty}\frac{f(n)}{g(n)}$），算它會趨近於 $0$ 還是 $\infty$，就能知道誰大誰小了。</p><h4 id="舉例"><a href="#舉例" class="headerlink" title="舉例"></a>舉例</h4><p>若欲比較 $2^n$ 和 $n^2$ 在 $n \to \infty$ 時的大小，我們可以算出 $\displaystyle\lim_{n \to \infty}\frac{n^2}{2^n}=0$，代表<strong>分母 &gt; 分子</strong>，即同時符合 $n^2=O(2^n)$ 和 $n^2=o(2^n)$；反之，若算 $\displaystyle\lim_{n \to \infty}\frac{2^n}{n^2}=\infty$，就表示 $2^n \ne O(n^2)$ 和 $2^n \ne o(n^2)$。結論就可以說 $n^2 \ll 2^n$。</p><h2 id="泰勒形式"><a href="#泰勒形式" class="headerlink" title="泰勒形式"></a>泰勒形式</h2><h3 id="形式"><a href="#形式" class="headerlink" title="形式"></a>形式</h3><p>只要把一個標準形式的多項式 $a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0$ 改寫成 $c_0+c_1(x-a)+c_2(x-a)^2+\cdots+c_n(x-a)^n$ 的形式，就稱為<strong>泰勒形式（泰勒展開式）</strong>，並且 $a$ 稱為<strong>參考點</strong>。</p><h3 id="做法-1"><a href="#做法-1" class="headerlink" title="做法"></a>做法</h3><p>要把多項式轉為泰勒形式，我們可以採用高一上就教過的<strong>連續綜合除法</strong>。舉個例子，若我們要做「$2x^3−3x^2+4x+5$」在參考點 $a=1$ 處的泰勒展開：</p><img src="/img/synthetic_division.png" class="" title="泰勒展開範例"><p>最終它的泰勒形式即為</p>$$8+4(x-1)+3(x-1)^2+2(x-1)^3$$<h3 id="一次估計"><a href="#一次估計" class="headerlink" title="一次估計"></a>一次估計</h3><p>做出泰勒形式後，它的意義實際上是做估計，我們取泰勒形式到一次項時，則稱為「<strong>一次估計</strong>」，其泰勒形式的圖形其實也就是原本圖形在遠處看時的近似圖形（一次圖形）。</p><p>以剛才的 $a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0$ 改寫成 $c_0+c_1(x-a)+c_2(x-a)^2+\cdots+c_n(x-a)^n=8+4(x-1)+3(x-1)^2+2(x-1)^3$ 而言，其一次估計就會取 $8+4(x-1)$ 這個部分來做估計。</p><p>要特別注意的是，$|x-a|$ 之值要夠小才能用一次估計，否則估計出來的數值會誤差很大。</p><h3 id="切線與導數"><a href="#切線與導數" class="headerlink" title="切線與導數"></a>切線與導數</h3><p>我們稱一次估計的函數 $y=m(x-a)+f(a)$ 為 $f(x)$ 在 $x=a$ 處的<strong>切線</strong>，且斜率 $m$ 又稱為「<strong>導數</strong>」，可以寫作 $f’(a)$。</p><p>因此，一次估計的公式又可以寫成</p>$$y=f'(a)(x-a)+f(a)$$<h2 id="導數（微分）"><a href="#導數（微分）" class="headerlink" title="導數（微分）"></a>導數（微分）</h2><h3 id="基本公式"><a href="#基本公式" class="headerlink" title="基本公式"></a>基本公式</h3><p><strong>微分</strong>是指計算出導（函）數的計算過程，對 $f(x)$ 微分（或者說求其導函數）可以寫作 $f’(x)$ 或 $[f(x)]’$，我們有兩種方式可以理解導數的基本公式。</p><h4 id="泰勒形式"><a href="#泰勒形式" class="headerlink" title="泰勒形式"></a>泰勒形式</h4><p>從一次估計的概念中，我們可以知道 $f(x) \approx f(a)+f’(a)(x-a)$，也就是說 $\frac{f(x)-f(a)}{x-a} \approx f’(a)$。而此時，若 $x$ 越來越靠近 $a$，則函數近似值就會越來越準，故可寫成</p>$$f'(a)=\lim_{x \to a}\frac{f(x)-f(a)}{x-a}$$<h4 id="極限-1"><a href="#極限-1" class="headerlink" title="極限"></a>極限</h4><p>另一個觀點來看，導數代表的是「<strong>切線斜率</strong>」，若用 $h$ 表示 $x$ 的改變量，則 $f(a+h)-f(a)$ 代表 $y$ 的改變量，那麼就可以寫成 $\frac{f(a+h)-f(a)}{h}$，代表的是在區間 $[a,a+h]$ 之間的<strong>平均變化率</strong>。</p><p>若今天我們讓 $h \to 0$，則平均變化率會變成<strong>瞬時變化率</strong>，也就是導數，則可以寫為</p>$$f'(a)=\lim_{h \to 0}\frac{f(a+h)-f(a)}{h}$$<div class="note note-info">            <p>之所以導數代表切線斜率，其實我們可以想像成在函數上找任意一點 $a$，以及向右找另一點 $a+h$，這兩點可以連成一條線（即<strong>割線</strong>）。而若我們把這兩條線越靠越近，讓它們無限逼近於一個點，讓它們幾乎重疊時（即 $h \to 0$），它們兩線的連線就是<strong>切線</strong>。</p> <p>其實<strong>割線斜率</strong>概念上相當於<strong>平均變化率</strong>，而當 $h \to 0$，割線變為切線時，它就成了<strong>瞬間變化率</strong>，也因此導數就會是<strong>切線斜率</strong>。</p>           </div><h4 id="整合"><a href="#整合" class="headerlink" title="整合"></a>整合</h4><p>我們改寫 $h=x-a$，則</p>$$f'(a)=\lim_{x \to a}\frac{f(x)−f(a)}{x-a}​$$<p>因此兩種看法指向的是同一個結果。</p><h4 id="推導成公式"><a href="#推導成公式" class="headerlink" title="推導成公式"></a>推導成公式</h4><p>當我們代 $f(x)=x^n$ 時，無論你是用泰勒形式或極限的看法去代算，都能得出一個結論：$[x^n]’=nx^{n-1}$，這便是導數的基礎公式。</p><p>我們分別就不同情況來舉一例子：</p><ul><li>$[x^5]’=5x^4$</li><li>$[7]’=0$</li><li>$[\sqrt x]’=[x^{\frac12}]’=\frac12x^{-\frac12}$</li><li>$[\frac{1}{x^3}]’=[x^{-3}]’=-3x^{-4}$</li></ul><h3 id="運算-1"><a href="#運算-1" class="headerlink" title="運算"></a>運算</h3><ul><li>加減法則：多項式函數做導函數時，可以將每項拆開，分別計算導數後，再組合起來。例如 $f(x)=x^2+x+1$，做它的導函數時，可以將 $x^2$、$x$、$1$ 這三項分開來算導數後，再組合起來，得 $f’(x)=2x+1$</li><li>係數積法則：有係數時，可以將它提出來，求出導數後再乘回去。例如 $f(x)=3x^2$，則微分時可將係數 $3$ 提出，過程會變成 $f’(x)=3[x^2]’=3[2x]=6x$</li></ul><h3 id="多次微分"><a href="#多次微分" class="headerlink" title="多次微分"></a>多次微分</h3><p>在進行不止一次的微分時，例如二次微分（記作 $f’’(x)$），是取一次微分 $f’(x)$ 的結果再進行微分，以此類推。</p><p>記號上，我們會用 $f’(x)$、$f’’(x)$、$f’’’(x)$ 表示一到三次的微分，而四次及以上，則會用 $f^{(4)}$、$f^{(5)}$、$f^{(6)}$……來表達。</p><h2 id="增減、極值、反曲點"><a href="#增減、極值、反曲點" class="headerlink" title="增減、極值、反曲點"></a>增減、極值、反曲點</h2><h3 id="遞增或遞減"><a href="#遞增或遞減" class="headerlink" title="遞增或遞減"></a>遞增或遞減</h3><p>我們知道了，一次微分代表函數的<strong>切線斜率</strong>，因此若我們想知道 $x=a$ 處的切線斜率，可以用 $f’(a)$ 求得。$f’(a)&gt;0$ 表示函數遞增（Increase），$f’(a)&lt;0$ 則是遞減（Decrease），且 $|f’(a)|$ 可以反映出函數陡或緩。</p><p>若現在的情況相反，我們知道函數值，但要求它在哪個區間的遞增或遞減情形，則我們可以直接設 $f’(x)&gt;0$ 或 $f’(x)&lt;0$ 再去求 $x$ 範圍，就能知道函數的情形了。</p><div class="note note-info">            <p>再精確一點說：</p> <ul> <li>$f’(a)\ge0$：遞增</li> <li>$f’(a)\le0$：遞減</li> <li>$f’(a)&gt;0$：嚴格遞增</li> <li>$f’(a)&lt;0$：嚴格遞減</li> </ul>           </div><h3 id="極值"><a href="#極值" class="headerlink" title="極值"></a>極值</h3><p>剛才提到了 $f’(a)&gt;0$ 和 $f’(a)&lt;0$ 的情況了，但 $f’(a)=0$ 呢？實際上，在 $f’(a)=0$ 處，它在函數圖形上會剛好是一個臨界點（Critical Point），那這就很好想它的意義了，也就是「<strong>極值</strong>」。</p><p>以二次圖形來說，轉折處只會有一個，也就是它的<strong>最大值</strong>（絕對極大值 Absolute Maximum、全域極大值 Global Maximum）或<strong>最小值</strong>（絕對極小值 Absolute Minimum、全域極小值 Global Minimum）。</p><p>但到了三次及以上的圖形時，它的圖形就不一定會存在最值了，某些方向會向無窮遠處延伸，此時我們仍能找到 $f’(a)=0$ 的值，它會在很小的區域中呈現小山峰或小山谷，因為在小範圍中它是最大或最小的值，我們稱它為<strong>極大值</strong>（相對極大值 Relative Maximum、局部極大值 Local Maximum）或<strong>極小值</strong>（相對極小值 Relative Minimum、局部極小值 Local Minimum）。</p><p>不過，這裡仍會存在一個例外，也就是「重根」時，當我們找到 $f’(x)$ 的解 $a$ 為重根時，表示它在 $f’(a)$ 的左右兩側沒有變號，此時在 $x=a$ 處就不能算極值。</p><img src="/img/extremum.png" class="" title="極值"><h3 id="反曲點"><a href="#反曲點" class="headerlink" title="反曲點"></a>反曲點</h3><h4 id="定義"><a href="#定義" class="headerlink" title="定義"></a>定義</h4><p>反曲點發生在三次及以上的函數，在函數圖形取一點，若該點的左右兩側「<strong>彎曲方向相反</strong>」（<strong>一上一下</strong>或<strong>一下一上</strong>）時，則該點就稱為<strong>反曲點（Point of Inflection）</strong>。</p><img src="/img/turning_point.png" class="" title="反曲點"><h4 id="做法-2"><a href="#做法-2" class="headerlink" title="做法"></a>做法</h4><p>對於存在反曲點的函數 $f(x)$，其反曲點「可能」發生在 $x=a$ 處，使得 $f’’(a)=0$ 且 $f’’(a)$ 在 $a$ 的兩側變號。</p><div class="note note-info">            <p>其實反曲點的意義就是去找「切線斜率 $f’(x)$ 圖形的切線斜率 $f’’(x)$」</p>           </div><h3 id="例外"><a href="#例外" class="headerlink" title="例外"></a>例外</h3><p>在函數中，<strong>不一定會存在極值或反曲點</strong>，例如 $x^3$ 不存在極值、$x^4$ 不存在反曲點。</p><div class="group-image-container"><div class="group-image-row"><div class="group-image-wrap"><img src="/img/no_extremum.png" alt="不存在極值"></div></div><div class="group-image-row"><div class="group-image-wrap"><img src="/img/no_turning_point.png" alt="不存在反曲點"></div></div></div><p>那要如何檢查？我們只要檢查以下其中一項，即可確定極值或反曲點的存在：</p><ul><li>$f’(x)$（極值）或 $f’’(x)$（反曲點）在 $a$ 左右兩側變號</li><li>$f’’(a) \ne 0$（極值）或 $f’’’(a) \ne 0$（反曲點）</li><li>實際畫出圖形確認</li></ul><h2 id="用導數理解泰勒形式"><a href="#用導數理解泰勒形式" class="headerlink" title="用導數理解泰勒形式"></a>用導數理解泰勒形式</h2><h3 id="每項"><a href="#每項" class="headerlink" title="每項"></a>每項</h3><p>我們可以將 $f(x)=c_0+c_1(x-a)+c_2(x-a)^2+\cdots+c_n(x-a)^n$ 進行數次微分後，觀察到一個現象：每一項的 $c_n$，實際上可以被寫成</p>$$c_n = \frac{1}{n!} f^{(n)}(a)$$<h3 id="一次估計-1"><a href="#一次估計-1" class="headerlink" title="一次估計"></a>一次估計</h3><p>套用剛才的結論，我們就可以將一次估計寫成</p>$$f(x)=f'(a)(x-a)+f(a)$$<p>與先前的結論一致。</p><h2 id="導數公式的推廣"><a href="#導數公式的推廣" class="headerlink" title="導數公式的推廣"></a>導數公式的推廣</h2><h3 id="乘法律"><a href="#乘法律" class="headerlink" title="乘法律"></a>乘法律</h3><h4 id="證明"><a href="#證明" class="headerlink" title="證明"></a>證明</h4><p>其實這個證明同樣可以從極限或泰勒形式出發，這裡就用比較簡單的極限角度來證它吧。</p><p>首先定義 $u=u(x),v=v(x)$ 且皆為可微函數，那麼它們的微分可以寫成定義的樣子</p>$$(uv)'(x)=\lim_{h \to 0}\frac{u(x+h)v(x+h)-u(x)v(x)}{h}$$<p>再來，為了把它折成兩項，我們可以在分子同加減 $u(x+h)v(x)$</p>$$(uv)'(x)=\lim_{h \to 0}\frac{u(x+h)(v(x+h)-v(x))}{h}+\lim\_{h \to 0}\frac{v(x)(u(x+h)−u(x))​}{h}=\lim_{h \to 0}\left[u(x+h)\frac{v(x+h)-v(x)}{h}\right]+v(x)\lim_{h \to 0}\frac{u(x+h)-u(x)}{h}$$<p>因為 $\displaystyle\lim_{h \to 0}u(x+h)=u(x)$，因此第一項變成 $\displaystyle\lim_{h \to 0}u(x+h)\cdot\lim_{h \to 0}\frac{v(x+h)−v(x)​}{h}=u(x)v’(x)$、第二項變成 $v(x)\cdot u’(x)$，證明完畢。</p><h4 id="公式"><a href="#公式" class="headerlink" title="公式"></a>公式</h4><ul><li>基本二項：$[uv]’=u’v+uv’$（前微後不微 + 後微前不微）</li><li>推廣多項：$[uvw]’=u’vw+uv’w+uvw’$（每項各別微）</li></ul><h3 id="連鎖律（Chain-Rule）"><a href="#連鎖律（Chain-Rule）" class="headerlink" title="連鎖律（Chain Rule）"></a>連鎖律（Chain Rule）</h3><h4 id="證明-1"><a href="#證明-1" class="headerlink" title="證明"></a>證明</h4><p>證明一樣是使用原始極限定義的方式，我們取 $h(x)=g(f(x))$，並求出其導函數</p>$$h'(a)=\lim_{x \to a}\frac{h(x)-h(a)}{x-a}=\lim_{x \to a}\frac{g(f(x))-g(f(a))}{x-a}$$<p>將它拆開</p>$$h'(a)=\lim_{x \to a}\left[\frac{g(f(x))-g(f(a))}{f(x)-f(a)}\cdot\frac{f(x)-f(a)}{x-a}\right]$$<p>再拆</p>$$h'(a)=\left(\lim_{x \to a}\frac{g(f(x))-g(f(a))}{f(x)-f(a)}\right)\cdot\left(\lim_{x \to a}\frac{f(x)-f(a)}{x-a}\right)$$<p>整理、代換，並令 $u=f(x)$</p>$$\lim_{x \to a}\frac{g(f(x))-g(f(a))}{f(x)-f(a)}=\lim_{u \to f(a)}\frac{g(u)-g(f(a))}{u-f(a)}=g'(f(a))$$$$\lim_{x \to a}\frac{f(x)-f(a)}{x-a}=f'(a)$$<p>合併兩項</p>$$h'(a)=g'(f(a))\cdot f'(a)$$<p>證畢。</p><h4 id="公式-1"><a href="#公式-1" class="headerlink" title="公式"></a>公式</h4><script type="math/tex; mode=display">[f(g(x))]' = f'(g(x))\cdot g'(x)</script><h3 id="除法律"><a href="#除法律" class="headerlink" title="除法律"></a>除法律</h3><h4 id="證明-2"><a href="#證明-2" class="headerlink" title="證明"></a>證明</h4><p>除法律實際上是乘法律和連鎖律的綜合應用，因此此項不一定要記憶。</p>$$\left[\frac vu\right]'=\left(v\cdot\frac 1u\right)'=v'\cdot\frac 1u+v\cdot\left[\frac 1u\right]'=v'\cdot\frac 1u+v\cdot\left[-\frac{u'}{u^2}\right]=\frac{v'u-vu'}{u^2}$$<h4 id="公式-2"><a href="#公式-2" class="headerlink" title="公式"></a>公式</h4><script type="math/tex; mode=display">\left[\frac{v}{u}\right]'=\frac{v'u-vu'}{u^2}</script><h3 id="三角函數"><a href="#三角函數" class="headerlink" title="三角函數"></a>三角函數</h3><p>具體證明以及更多三角函數微分不在本章範圍中，此僅補充兩個最常見的三角函數微分：</p><ul><li>$[\sin x]’=\cos x$</li><li>$[\cos x]’=-\sin x$</li></ul><h2 id="另一種導數符號"><a href="#另一種導數符號" class="headerlink" title="另一種導數符號"></a>另一種導數符號</h2><p>前面我們說過，導數的原始定義為 $f’(x)=\displaystyle\lim_{h \to 0}\frac{f(x+h)-f(x)}{h}$，其中分母的 $h$ 說的其實就是 <strong>$x$ 的變化量</strong>小到靠近 $0$（因為 $h \to 0$），而分子的 $f(x+h)-f(x)$ 看的就是 $y$（即 $f(x)$）在 $h$ 靠近 $0$ 時的「<strong>變化量</strong>」。</p><p>我們可以發現，上面那一大串說明，可以被簡化成</p>$$\lim_{\Delta x \to 0}\frac{\Delta y}{\Delta x}$$<p>那既然 $x$ 和 $y$ 變化量都會靠近 $0$，不如我們就把「變化量 $\Delta$」改寫成別的形式，數學家於是想到用「$\mathrm d$」來表示「<strong>微量</strong>的變化量」，於是微分的過程就可以被簡化成 $f’(x)=\frac{\mathrm dy}{\mathrm dx}$，而這便是<strong>萊布尼茲符號</strong>（我們原先提到的則稱為<strong>牛頓符號</strong>）。</p><p>我們可以再把 $f(x)$ 代回 $y$，式子就變成了</p>$$f'(x)=\frac{\mathrm d}{\mathrm dx}f(x)$$<p>便成為了我們最常見到的表達形式。</p><h2 id="反導函數（不定積分）"><a href="#反導函數（不定積分）" class="headerlink" title="反導函數（不定積分）"></a>反導函數（不定積分）</h2><h3 id="反函數"><a href="#反函數" class="headerlink" title="反函數"></a>反函數</h3><p>在談反導函數前，我們先來說說<strong>反函數</strong>。若今天我們有一函數 $y=f(x)$，則其反函數為 $x=f(y)$（亦記作 $f^{-1}(x)$），由此我們可以得知，「反函數」指與原函數相反的操作。若今天我們有一數 $\alpha$，則在經過函數 $f(x)$ 會變成 $f(\alpha)$，再將 $f(\alpha)$ 經過其反函數 $f^{-1}(x)$ 後，會變成 $f(f^{-1}(\alpha))$，因為 $f(x)$ 和 $f^{-1}(x)$ 互為反函數，因此</p>$$f(f^{-1}(\alpha))=\alpha$$<img src="/img/inverse_function.jpg" class="" title="反函數示例圖"><blockquote><p>圖片來源：<a href="https://www.youtube.com/watch?v=chDCHElXp7g">臺北酷課雲 YouTube 頻道</a></p></blockquote><h3 id="反導函數"><a href="#反導函數" class="headerlink" title="反導函數"></a>反導函數</h3><h4 id="意義-2"><a href="#意義-2" class="headerlink" title="意義"></a>意義</h4><p>反導函數屬於反函數的一種，但它還原的是微分操作，那微分具體在做什麼？前面提到過，微分在做的其實是看非常微量的變化量，因此積分（反導函數）就是把這些微量變化量加總起來，看看原來的函數是什麼。</p><p>表示上，若寫成 $\int \mathrm dy$，就表示把無窮多個微量的 $\mathrm dy$ 加在一起，還原成 $y$。又因為微分會寫成 $f’(x)=\frac{\mathrm dy}{\mathrm dx}$，移項可得 $\mathrm dy = f’(x)\,\mathrm dx$，因此積分又可以寫成</p>$$\int \mathrm dy=\int f(x) \; \mathrm dx$$<h4 id="作法"><a href="#作法" class="headerlink" title="作法"></a>作法</h4><p>至於具體做法呢？要「還原」其實很簡單，我們只要逆向操作微分即可。微分公式為 $[ax^n]’=anx^{n-1}$，白話來說，就是「次方乘下來，次方減一」，因此積分的逆操作就會變成「<strong>次方加一，次方除下來</strong>」，我們可以寫作 $\int \, x^n \; \mathrm dx=\frac{1}{n+1}x^{n+1},\,n \ne -1$。</p><p>舉個例子，$f(x)=3x^5,\,f’(x)=15x^4$，則要對 $f’(x)$ 積分還原回 $f(x)$，就可以寫</p>$$f(x)=\int f'(x) \; \mathrm dx=\frac{15}{4+1}x^{4+1}=3x^5$$<h4 id="丟失的常數項"><a href="#丟失的常數項" class="headerlink" title="丟失的常數項"></a>丟失的常數項</h4><p>但這裡還會有一個問題，我們做微分時，常數項會消失，而消失項無法在積分中找回，因此我們要補上一個常數項 $C$，來表示「任何可能的常數」。也因為有一項不確定數值（不定常數），因此這種積分才被稱為「<strong>不定積分</strong>」。</p><p>舉個例子</p>$$\int \, 2x+6 \; \mathrm dx=x^2+6x+C$$<h2 id="定積分"><a href="#定積分" class="headerlink" title="定積分"></a>定積分</h2><h3 id="做法-3"><a href="#做法-3" class="headerlink" title="做法"></a>做法</h3><p>前面說過，不定積分是指帶有一個不定常數的積分，而本章要說明的定積分，可想而知，是一種不會帶不定常數、確定數值的積分。</p><p>我們可以為積分標示上下限，例如「$f(x)$ 對 $x$ 從 $a$ 到 $b$ 的積分」就可表示為 $\int_a^b \, f(x) \; \mathrm dx$。假設 $F’(x)=f(x)$，則 $\int \, f(x) \; \mathrm dx=F(x)+C$，加入上下限後就變成</p>$$\int_a^b \, f(x) \; \mathrm dx=F(b)-F(a)$$<p>可以簡單記憶「<strong>上標代入 - 下標代入</strong>」，而 $F(b)-F(a)$ 可以簡記成 $\left. F(x) \right|_a^b$ 或 $[F(x)]_a^b$。</p><h3 id="意義-3"><a href="#意義-3" class="headerlink" title="意義"></a>意義</h3><p>若函數 $f(x)$ 在區間 $[a,b]$ 連續，則 $\int_a^b \, f(x) \; \mathrm dx$ 表示在區間 $[a,b]$ 內 $f(x)$ 與 $x$ 軸夾的<strong>有向面積</strong>。</p><p>何為有向面積？若函數處於 $x$ 軸下方，則定積分結果會為負號，又或是有部分區域穿到了 $x$ 軸下方時，會導致面積被減掉，而這種數值就叫作有向面積。如果要算出<strong>真實面積</strong>，則需要將 $x$ 軸上方與 $x$ 軸下方的部分拆開計算，並加上<strong>絕對值</strong>後，再加總。</p><p>這其實就是「<strong>黎曼和</strong>」的極限結論，當我們把圖形切成無限多個長方形，再計算長方形面積的總和，它的面積就會無限接近曲線下面積。</p><p>舉個例子，若我們要求下方圖形的面積，我們將它切成十份，左圖將長方形放在線上，因此面積會高估，即上黎曼和，其面積和可以表示為 $\displaystyle U_{10}=\sum_{i=1}^{10}f(x_i) \cdot \Delta x$（長方形面積 = 長 &times; 寛）；右圖將長方形放在線下，因此面積會低估，即下黎曼和，其面積和可以表示為 $L_{10}=\displaystyle\sum_{i=1}^{10}f(x_{i-1}) \cdot \Delta x$。</p><p>那如果不切成十份，而是改切成 $n$ 份，上和即 $U_n=\displaystyle\sum_{i=1}^{n}f(x_i) \cdot \Delta x$、下和即 $L_n=\displaystyle\sum_{i=1}^{n}f(x_{i-1}) \cdot \Delta x$。我們可以想像，當 $n$ 越大時，面積會估計得越準確，並且上、下黎曼和會漸漸靠近，那什麼時候會等於曲線下面積呢？就是 $n \to \infty$ 時，當把線切成無限多份時，上、下和會逼近到一致，概念上有點像夾擠定理那樣，讓</p>$$\lim_{n \to \infty}U_n=\lim_{n \to \infty}L_n=\int_a^b \, f(x) \; \mathrm dx$$<img src="/img/integral.jpg" class="" title="黎曼和示例圖"><blockquote><p>圖片來源：<a href="https://www.youtube.com/watch?v=jEjvtO5_A6E">Ing. Jorge Sanchez YouTube 頻道</a></p></blockquote><h3 id="平均值"><a href="#平均值" class="headerlink" title="平均值"></a>平均值</h3><h4 id="離散"><a href="#離散" class="headerlink" title="離散"></a>離散</h4><p>在離散情況下，平均值的計算相當簡單，就是 $\displaystyle\mu=\frac{1}{n} \sum_{i=1}^n x_i$，說人話就是資料總和 &div; 筆數。</p><h4 id="連續"><a href="#連續" class="headerlink" title="連續"></a>連續</h4><p>那在連續的情況下如何計算？其實在連續圖形中，只要我們能找到一水平線，其與 $x$ 軸夾的長方形面積與函數曲線下面積相等，我們就說那條線的高度（$y$ 軸）為函數的<strong>平均值</strong>。</p><p>假設在區間 $[a,b]$ 中，要找到函數 $f(x)$ 的平均值 $\mu$，我們可能會寫成 $\mu\cdot(b-a)=\int_a^b \, f(x) \; \mathrm dx$，移項一下就可以得到平均值的公式</p>$$\mu=\frac{1}{b-a}\int_a^b \, f(x) \; \mathrm dx$$<h3 id="代換積分法"><a href="#代換積分法" class="headerlink" title="代換積分法"></a>代換積分法</h3><h4 id="不定積分"><a href="#不定積分" class="headerlink" title="不定積分"></a>不定積分</h4><p>首先，<strong>代換積分法（u-substitution）</strong>的「代換」，即表示要用某一個變數來替換另一串比較難的運算，實務上，我們習慣以 $u$ 來代換，具體怎麼做呢？</p><ol><li>找到一串看起來比較難算的東西（通常是為了解決微分連鎖律的反運算）</li><li>令 $u$ 為那一串東西</li><li>算出 $\mathrm du$，具體做法是對令 $u$ 算式左右兩邊都微分，得到 $\frac{\mathrm du}{\mathrm dx}$，再移項</li><li>整個式子變成簡單的、與 $u$ 有關的積分，正常計算積分</li><li>再把 $x$ 代回原式，完成運算</li></ol><p>這麼說可能有點難懂，別急，我們舉個例子來算算看就懂了：計算 $\int \, 2x\cos x^2 \; \mathrm dx$。因為 $x^2$ 微分就是 $2x$，要用到連鎖律的反運算，因此這題使用代換積分法來做再適合不過了。</p><ol><li>找到一串難算的東西，我們可以選擇 $x^2$，因為它出現在三解函數內，難算</li><li>令 $u=x^2$</li><li>左右兩邊微分，變成 $\frac{\mathrm du}{\mathrm dx}=2x$，移項可得 $\mathrm du=2x \, \mathrm dx$</li><li>原式變成 $\int \, \cos u \; \mathrm du$，直接算它會得到 $\sin u+C$</li><li>代回原式，變成 $\sin x^2+C$，完成</li></ol><div class="note note-info">            <p>要判斷能不能用代換積分法、要令 $u$ 是什麼，關鍵就是要找到一個 $u$，使得 $f(x)=g(u)\cdot \mathrm du$</p>           </div><h4 id="定積分-1"><a href="#定積分-1" class="headerlink" title="定積分"></a>定積分</h4><p>定積分的代換積分法運算相比不定積分，其實只差了一步，也就是<strong>替換上下標</strong>，因為當今天函數變成用變數 $u$ 而非 $x$ 時，以 $x$ 為基準的上下標，就得替換成以 $u$ 為基準的上下標，如此做了之後，當我們再去算<strong>上標代入 - 下標代入</strong>時，就不一定要將 $x$ 代回（步驟 5.），直接代入即可。</p><p>舉個例子，要計算 $\int_0^2 \, 2x\sqrt{1+x^2} \; \mathrm dx$，步驟就會變成：</p><ol><li>找到難算的東西，我們找 $1+x^2$</li><li>令 $u=1+x^2$</li><li>$\frac{\mathrm du}{\mathrm dx}=2x$，所以 $\mathrm du=2x \, \mathrm dx$</li><li>轉換上下標，$上標=1+2^2=5$、$下標=1+0^2=1$</li><li>做積分 $\int_1^5 \, \sqrt u \; \mathrm du=\int_1^5 \, u^{\frac 12} \; \mathrm du=\frac 23\left[u^{\frac 32}\right]_1^5$</li><li><strong>上標代入 - 下標代入</strong>，變成 $\frac 23(5^{\frac 32}-1^{\frac 32})=\frac 23(5\sqrt 5-1)$，完成</li></ol><h4 id="注意事項"><a href="#注意事項" class="headerlink" title="注意事項"></a>注意事項</h4><p>除了前面提到的，找 $u$ 時要使 $f(x)=g(u)\cdot \mathrm du$ 之外，還要特別注意這個 $u$ 所代換的方程式必須為<strong>一對一函數（one to one function）</strong>，也就是 $f(a)=f(b) \implies a=b$，例如 $f(x)=x^2$ 就不符合，因為 $f(1)=f(-1)=1$ 但 $1 \ne -1$，這種情況下就不能令 $u$ 為它。</p><h2 id="圓與球"><a href="#圓與球" class="headerlink" title="圓與球"></a>圓與球</h2><h3 id="圓"><a href="#圓" class="headerlink" title="圓"></a>圓</h3><p>對於一個圓 $x^2+y^2=r^2$，我們從國小就知道了它的面積為 $A=\pi r^2$，但這是怎麼來的呢？我們可以用積分來理解它。</p><p>概念上，要計算一個圓面積，我們可以把它看成是從半徑為 $0$ 漸漸擴散到半徑為 $r$ 的所有同心圓，其圓周長 &times; 極小的厚度的總和（若無厚度，線的面積為 $0$，總和仍會是 $0$）。周長的公式我們小時候就學過，$S=2 \pi x$；至於厚度，因為它會隨著你切成的同心圓數量增加，而導致厚度變薄，當數量逼近無限個同心圓時，厚度逼近於 0，故厚度可表示成 $\mathrm dx$。那我們從 $0$ 到 $r$ 的範圍中，同心圓面積都是 $2 \pi x \, \mathrm dx$，所以圓面積就會是 $\int_0^r \, 2 \pi x \mathrm dx=[\pi x^2]_0^r=\pi r^2$。</p><h3 id="球"><a href="#球" class="headerlink" title="球"></a>球</h3><h4 id="體積（球殼法）"><a href="#體積（球殼法）" class="headerlink" title="體積（球殼法）"></a>體積（球殼法）</h4><p>面積是由無數線組成，所以體積是由無數面組成，那套用這個概念，我們就可以來探討球體的體積如何計算了。對於一個球體 $x^2+y^2+z^2=r^2$，它會是由無數個同心球殼組成，若我們切的球殼越多，每層球殼的厚度也一樣會越接近 0，故厚度為 $\mathrm dr$；球的表面積是 $4 \pi r^2$，那球殼體積微量就是 $\mathrm dV = 4 \pi r^2 \, \mathrm dr$，我們再把從 $0$ 到 $r$ 的所有球殼體積加起來，就會是 $V=\int_0^r 4 \pi r^2 \, \mathrm dr=4\pi \int_0^r r^2 \, \mathrm dr=4\pi\left[\frac{r^3}{3}\right]_0^r=\frac 43\pi r^3$。</p><iframe src="https://www.geogebra.org/calculator/b7jgp5w7?embed" width="800" height="600" loading="lazy" allowfullscreen style="border: 1px solid #e4e4e4;border-radius: 4px;" frameborder="0"></iframe><div class="note note-light">            <p>可以點擊左側 <code>dr</code> 的數值滑桿播放按鈕來播放動畫</p>           </div><h4 id="體積（圓盤法）"><a href="#體積（圓盤法）" class="headerlink" title="體積（圓盤法）"></a>體積（圓盤法）</h4><p>另一種想法，則是換一種角度去切它，我們除了用同心球殼以外，也可以直接切成好幾個很薄的、平面的圓盤，例如我們可以繞著 $x$ 軸做旋轉體（也就是先畫出一個二維圓，把它中心放在 $x$ 軸，讓它以 $x$ 軸為中心點旋轉出第三維度），我們可以把它表示成 $y^2+z^2=r^2-x^2$，而截面圓半徑即為 $r(x)=\sqrt{r^2-x^2}$。</p><p>再來，我們要把每個圓盤假設成非常薄，薄到接近 0，可以用 $\mathrm dx$ 表示，故薄片體積即截面圓 &times; 厚度，可以寫成 $\mathrm dV=\pi r(x)^2 \, \mathrm dx=\pi(r^2-x^2) \, \mathrm dx$，而球體體積就會是從最左邊 $-r$ 到最右邊 $r$ 的所有薄片體積和，即為 $V=\int_{-r}^r \, \pi(r^2-x^2) \; \mathrm dx=\frac 43\pi r^3$（計算過程省略，<del>留作課後習題</del>）。</p><iframe src="https://www.geogebra.org/3d/m4prvqvt?embed" width="800" height="600" loading="lazy" allowfullscreen style="border: 1px solid #e4e4e4;border-radius: 4px;" frameborder="0"></iframe><div class="note note-light">            <p>可以點擊左側 <code>x0</code> 和（或）<code>dx</code> 的數值滑桿播放按鈕來播放動畫</p>           </div><div class="note note-info">            <p>圓盤法和球殼法只是兩種最常見的解法，仍會有其他種解法（如環形法）<br>不過個人推薦，如果只想學一種，那圓盤法還是最推薦的，它在後面的章節中也會有所應用</p>           </div><h4 id="表面積"><a href="#表面積" class="headerlink" title="表面積"></a>表面積</h4><p>其實表面積和體積的關係非常巧妙，剛才我們提到，體積都會是由無數面組成，而在更前面的章節中，我們也提到，積分所做的其實就是利用「微小變化量的總和」來還原「微小變化量」的微分操作。注意到了嗎，體積的積分，就是還原表面積的微分，所以表面積公式實際上只要把體積公式微分一下，就可以求得了，即 $\left[\frac 43\pi r^3\right]’=4 \pi r^2$。</p><p>如果這個解釋太抽象，我們也能用圖形角度理解，<strong>表面積</strong>的概念我們可以這麼想，如果今天有一圓球體體積為 $V(r)=\frac 43 \pi r^3$，比這個球還再大一點點的球，它的體積為 $V(r+h)$，那麼它們之間的體積差，就會是一層小球殼，其體積為 $\frac{V(r+h)-V(r)}{h}$，我們可以想像，若 $h$ 很小很小時，這層球殼體積就會逼近於球體表面積，具體計算為</p>$$\lim_{h \to 0}\frac{V(r+h)-V(r)}{h}=[V(r)]'=4 \pi r^2$$<p>所以其實這兩種解釋最後的方向都會是一樣的——微分。</p><h2 id="旋轉體體積"><a href="#旋轉體體積" class="headerlink" title="旋轉體體積"></a>旋轉體體積</h2><h3 id="定義-1"><a href="#定義-1" class="headerlink" title="定義"></a>定義</h3><p>將一個二維圖形繞一條線（旋轉軸）轉一圈 $360^\circ$，會形成一個三維立體圖形，即<strong>旋轉體（Solid of Revolution）</strong>。</p><p>在高中階段和初階微積分中，我們只會學到以 $x$ 軸為旋轉軸的情形，故本章只會以它為例說明。</p><h3 id="做法-4"><a href="#做法-4" class="headerlink" title="做法"></a>做法</h3><p>對於一個實心圖形的旋轉體，以 $x$ 軸為旋轉軸的旋轉體體積為 $V=\pi\int_a^b \, f^2(x) \; \mathrm dx$。</p><p>若今天要求的是 $f(x)$ 和 $g(x)$ 包圍而成的圖形以 $x$ 軸為旋轉軸的旋轉體體積，則體積為</p>$$V=\pi\int_a^b \, |f^2(x)-g^2(x)| \; \mathrm dx$$<img src="/img/Rotationskoerper_animation.gif" class="" title="旋轉體"><blockquote><p>圖片來源：<a href="https://zh.wikipedia.org/zh-tw/%E6%97%8B%E8%BD%AC%E4%BD%93">維基百科</a></p></blockquote><h2 id="自然常數-e"><a href="#自然常數-e" class="headerlink" title="自然常數 $e$"></a>自然常數 $e$</h2><h3 id="數值"><a href="#數值" class="headerlink" title="數值"></a>數值</h3><p>$e$ 是一個無限不循環小數，值大約是 $2.71828…$。</p><h3 id="定義——金融"><a href="#定義——金融" class="headerlink" title="定義——金融"></a>定義——金融</h3><p>當年利率為 $r$、每年複利計息 $n$ 次時，則每年的成長倍率（<strong>年增率</strong>，即每年本利和的成長率）是 $\left(1+\frac rn\right)^n$，如果把計息次數逼近無限次時（也就是<strong>連續複利</strong>），年增率會逼近一個極限，也就是自然常數 $e$，具體寫法會變成</p>$$\lim_{n \to \infty}\left(1+\frac rn\right)^n=e^r$$<h3 id="定義——指數函數"><a href="#定義——指數函數" class="headerlink" title="定義——指數函數"></a>定義——指數函數</h3><p>利用 $\displaystyle f’(x)=\lim_{h \to 0}\frac{f(x+h)-f(x)}{h}$ 這個原始定義，我們可以算出指數函數的導數值，例如：</p><ul><li>$[2^x]’ \approx 2^x \cdot 0.6931$</li><li>$[3^x]’ \approx 3^x \cdot 1.0986$</li><li>$[4^x]’ \approx 4^x \cdot 1.3863$</li></ul><p>注意到，所有指數函數 $a^x$，其導數會變成「$a^x \cdot\, ?$」的形式，於是在努力逼近下，我們會找到一個特殊的數，使得「$?$」部分逼近於 1，也就是讓 $[a^x]’=a^x$，而這個 $a$ 實際上就是自然常數 $e$。</p><p>結論，自然常數 $e$ 的其中一個特性即 $[e^x]’=e^x$，逆向的積分操作 $\int \, e^x \; \mathrm dx=e^x+C$ 也成立。</p><p>將這個特性推導成一般化公式，對指數函數 $e^u$，其導數 $[e^u]’=e^u \cdot u’$（別忘了連鎖律）。</p><h2 id="指數與對數函數"><a href="#指數與對數函數" class="headerlink" title="指數與對數函數"></a>指數與對數函數</h2><h3 id="指數函數"><a href="#指數函數" class="headerlink" title="指數函數"></a>指數函數</h3><h4 id="微分"><a href="#微分" class="headerlink" title="微分"></a>微分</h4><p>原本底數為 $e$ 時，我們有 $[e^x]’=e^x$，那如果底數換成非負實數 $a$ 呢？前面學過，它會是 $[a^x]’=a^x \cdot \; ?$，那這個 $?$ 又怎麼算？根據對數率 $a=e^{\ln a}$ 和一系列繪畫觀察等過程，我們可以得到一個指數函數的微分公式，即</p>$$[a^x]'=\ln a \cdot a^x, \, a>0$$<h4 id="積分"><a href="#積分" class="headerlink" title="積分"></a>積分</h4><p>其實積分只不過是把有連鎖律的微分公式反過來，即</p>$$\int \, u'e^u \; \mathrm dx=e^u+C$$<p>不過當要積的是 $a^x$ 這種形式時，可以利用指數律，化簡後形成</p>$$\int \, a^x \; \mathrm dx=\frac{a^x}{\ln a}+C, \; 0 < a \ne 1$$<h3 id="對數函數"><a href="#對數函數" class="headerlink" title="對數函數"></a>對數函數</h3><h4 id="微分-1"><a href="#微分-1" class="headerlink" title="微分"></a>微分</h4><p>經過對數律與連鎖律等推導，我們可以得到以下公式：</p><ul><li>$[\ln u]’=u’\cdot\frac 1u=\frac{u’}{u}$</li><li>$[\log_a x]’=\left[\frac{\ln x}{\ln a}\right]’=\frac{1}{x\cdot\ln a}$</li></ul><h4 id="積分-1"><a href="#積分-1" class="headerlink" title="積分"></a>積分</h4><p>從上面指數函數的積分結果再進行進一步的計算後，一樣可以換算成對數函數的積分公式</p>$$\int \, \ln x \; \mathrm dx=x\ln x-x+C$$<h2 id="積分基本公式的修正"><a href="#積分基本公式的修正" class="headerlink" title="積分基本公式的修正"></a>積分基本公式的修正</h2><p>前面我們說，積分公式為 $\int \, x^n \; \mathrm dx=\frac{1}{n+1}x^{n+1}, \, x \ne -1$，最後這個 $x \ne -1$ 的條件是為了不要出現分母是 0 的情況，但如果真的出現了 $n=0$（其實也就是 $\frac{1}{x}$）的情況，我們又該怎麼對它積分？</p><p>剛才我們又提到了，$[\ln x]’=\frac 1x$，不過這裡要特別注意負號的情況，當負數時，$[\ln -x]’=\frac{1}{-x}[-x]’=\frac{-1}{-x}=\frac 1x$，故應改寫成</p>$$[\ln |x|]'=\frac 1x, \, x \ne 0$$<p>把整個積分基本公式做修正，得到最終公式</p>$$\int \, x^n \; \mathrm dx =\begin{cases}\frac{1}{n+1}x^{n+1}+C, & n\neq -1 \\\ln|x|+C, & n=-1\end{cases}$$]]>
    </content>
    <id>https://chuen666666.com/%E4%B8%80%E5%8F%A3%E6%B0%A3%E6%90%9E%E6%87%82%E5%BE%AE%E7%A9%8D%E5%88%86%EF%BC%81%EF%BC%88%E5%88%9D%E9%9A%8E%E5%BE%AE%E7%A9%8D%E5%88%86%EF%BC%89/</id>
    <link href="https://chuen666666.com/%E4%B8%80%E5%8F%A3%E6%B0%A3%E6%90%9E%E6%87%82%E5%BE%AE%E7%A9%8D%E5%88%86%EF%BC%81%EF%BC%88%E5%88%9D%E9%9A%8E%E5%BE%AE%E7%A9%8D%E5%88%86%EF%BC%89/"/>
    <published>2026-02-18T12:56:25.000Z</published>
    <summary>一口氣讓你理解高中微積分在幹嘛，並做一些延伸</summary>
    <title>一口氣搞懂微積分！（初階微積分）</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="心得" scheme="https://chuen666666.com/categories/%E5%BF%83%E5%BE%97/"/>
    <category term="執照或檢定" scheme="https://chuen666666.com/categories/%E5%BF%83%E5%BE%97/%E5%9F%B7%E7%85%A7%E6%88%96%E6%AA%A2%E5%AE%9A/"/>
    <category term="心得" scheme="https://chuen666666.com/tags/%E5%BF%83%E5%BE%97/"/>
    <category term="執照" scheme="https://chuen666666.com/tags/%E5%9F%B7%E7%85%A7/"/>
    <category term="無線電" scheme="https://chuen666666.com/tags/%E7%84%A1%E7%B7%9A%E9%9B%BB/"/>
    <category term="三等業餘無線電" scheme="https://chuen666666.com/tags/%E4%B8%89%E7%AD%89%E6%A5%AD%E9%A4%98%E7%84%A1%E7%B7%9A%E9%9B%BB/"/>
    <content>
      <![CDATA[<p>我跟 <a href="https://xieserver.com/">@閔捷</a> 在 2026/2/9 考到了三等業餘無線電執照，所以來這裡分享和記錄一下。</p><h2 id="介紹"><a href="#介紹" class="headerlink" title="介紹"></a>介紹</h2><p>這裡對業餘無線電做一點簡單的介紹，更詳細的資訊就自己去網路上查。</p><p>「業餘」無線電不是指比較 Low 的意思，而是指它是「非職業用途」，NCC 在無線電管制算是比較嚴格的，要開始玩無線電時，除了要考過執照外，還要把設備拿去 NCC 驗機（考試和驗機可以一起，就不用多跑一趟，不過我還沒買就是了），使用過程也得守法，否則就是 1~10 萬元 + 設備沒收。</p><p>執照分為一、二、三等，最低三等，可以一路考上去（一等的話還要設台滿一年），不能跳級，考到更高等時較低等執照會視為無效，一張執照可以用十年，到期前的六個月起到五個月內可以再去跟 NCC 換發，換發可再延十年。考這個執照沒有年齡限制，如果你家有個小學一年級的神童能背完那 570 題，也可以去考一張來。</p><h2 id="題目"><a href="#題目" class="headerlink" title="題目"></a>題目</h2><p>基本上題目只要去背題庫即可，線上刷題網站和題庫都在官方提供的<a href="https://nccmember.ncc.gov.tw/exam/application/exam/examc07new.aspx">這個網站</a>裡，可以熟悉一下刷題網站的 UI，因為考試是電腦考，長得一模一樣。</p><p>我花了幾個小時全部看過一次，再刷個幾次就全過了，然後就去考照了，難度真的不高。遇到任何不懂的題目，直接丟原題去問 ChatGPT 原理就可以了，應該會對理解有蠻大幫助。</p><h2 id="考試應帶物品"><a href="#考試應帶物品" class="headerlink" title="考試應帶物品"></a>考試應帶物品</h2><ul><li>雙證件（身分證、健保卡、駕照等）</li><li>200 元報考費 + 500 元證照費（有提供轉帳、台灣 Pay、LINE Pay，不過我還是付現就是了）</li><li>證件照（1~2 吋）</li></ul><h2 id="考試地點與時間"><a href="#考試地點與時間" class="headerlink" title="考試地點與時間"></a>考試地點與時間</h2><h3 id="地點"><a href="#地點" class="headerlink" title="地點"></a>地點</h3><p>考照地點基本上都在 NCC，不過我查的時候，北區查到兩個地點，我們最後實際確認是在 <em>台北市中正區濟南路二段 16 號</em>，附近有 YouBike 站和機車位，不太需要擔心交通問題。</p><h3 id="時間"><a href="#時間" class="headerlink" title="時間"></a>時間</h3><p>它採現場報名制，不用事先預約，每週一、三、五在營業時間（9:00~11:20、14:00~16:20）隨到隨報，不過週三是團體報名，我推薦直接週一或五去考就好。</p><h2 id="考試流程"><a href="#考試流程" class="headerlink" title="考試流程"></a>考試流程</h2><p>我們到了 NCC 後，門口保安大哥還蠻熱情的，幫我們登記完訪客證之後，還把我們帶到考試的地方。</p><p>到地方後，就是先去電腦輸入基本報考資料，再去抽號碼排繳費，繳完就可以去考試了。</p><p>考試的空間不大，也就五、六個小隔間那種，小小一間，一個小隔間一台電腦。考試時的 UI 和模擬的一模一樣，刷過題就應該不會感到太陌生。題目是從題庫抽的，都是原題，連選項順序都不會改，甚至有機率抽到兩題一模一樣的（我就抽到了，還是連著的兩題，超好笑）。</p><p>考試時間是 40 分鐘，但基本上只要 5~7 分鐘就能寫完出來了，一交出就能馬上看到螢幕上顯示有沒有通過，<del>相當刺只因（激）</del>。</p><p>考過的話就可以回去再抽一次號碼排，等叫號，你的執照會直接現場幫你印好，簽收完 + 繳費完，就可以美美離場了；但如果你沒考過，就沒有這一步了，<del>可以直接醜醜離場</del>。</p><img src="/img/RAOC_Class3.png" class="" title="三等業餘無線電執照">]]>
    </content>
    <id>https://chuen666666.com/%E4%BA%BA%E7%94%9F%E7%9A%84%E7%AC%AC%E4%B8%80%E5%BC%B5%E5%B0%88%E6%A5%AD%E5%9F%B7%E7%85%A7%EF%BC%81%E4%B8%89%E7%AD%89%E6%A5%AD%E9%A4%98%E7%84%A1%E7%B7%9A%E9%9B%BB%E5%9F%B7%E7%85%A7%E5%88%B0%E6%89%8B%EF%BC%81/</id>
    <link href="https://chuen666666.com/%E4%BA%BA%E7%94%9F%E7%9A%84%E7%AC%AC%E4%B8%80%E5%BC%B5%E5%B0%88%E6%A5%AD%E5%9F%B7%E7%85%A7%EF%BC%81%E4%B8%89%E7%AD%89%E6%A5%AD%E9%A4%98%E7%84%A1%E7%B7%9A%E9%9B%BB%E5%9F%B7%E7%85%A7%E5%88%B0%E6%89%8B%EF%BC%81/"/>
    <published>2026-02-10T16:32:12.000Z</published>
    <summary>來分享一下我考三等業餘無線電執照的心得和過程</summary>
    <title>人生的第一張專業執照！三等業餘無線電執照到手！</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="心得" scheme="https://chuen666666.com/categories/%E5%BF%83%E5%BE%97/"/>
    <category term="活動" scheme="https://chuen666666.com/categories/%E5%BF%83%E5%BE%97/%E6%B4%BB%E5%8B%95/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="心得" scheme="https://chuen666666.com/tags/%E5%BF%83%E5%BE%97/"/>
    <category term="HPC" scheme="https://chuen666666.com/tags/HPC/"/>
    <category term="叢集運算" scheme="https://chuen666666.com/tags/%E5%8F%A2%E9%9B%86%E9%81%8B%E7%AE%97/"/>
    <category term="超算" scheme="https://chuen666666.com/tags/%E8%B6%85%E7%AE%97/"/>
    <category term="國網中心" scheme="https://chuen666666.com/tags/%E5%9C%8B%E7%B6%B2%E4%B8%AD%E5%BF%83/"/>
    <content>
      <![CDATA[<p>我與 <a href="https://xieserver.com/">@閔捷</a> 一起報名參加了由清華大學叢集運算團隊所舉辦的 《清華大學高速計算人工智慧冬令營》（2026/1/29~31），我們被分配到了第四小隊，隊員除了 <a href="https://xieserver.com/">@閔捷</a> 之外，還有 <a href="https://qwo877.github.io/me/">@匿名用戶9487</a> 和 <a href="https://github.com/Xiancode207585">@Xiancode207585</a>。我和 <a href="https://qwo877.github.io/me/">@匿名用戶9487</a> 基本上算是舊識了，我們在 115 資訊月資訊應用技能競賽就見過了，<a href="https://github.com/Xiancode207585">@Xiancode207585</a> 這個交大佬我們倒是都互不認識，不過合作和聊天過程意外地順利就是了。</p><h2 id="第零天（28-號）"><a href="#第零天（28-號）" class="headerlink" title="第零天（28 號）"></a>第零天（28 號）</h2><p>我和 <a href="https://xieserver.com/">@閔捷</a> 因為聽說清大提供的住宿環境不太好，因此我們提早自己訂了飯店，我和他就這麼住上了幾天，<del>當初還不小心少訂一天，我們兩個北七甚至沒發現，出發前一天才去補訂</del>。</p><p><a href="https://xieserver.com/">@閔捷</a> 訂了今天到新竹的台鐵，其實 12 點多的火車對於明天才開始活動的我們來說實在有些早，不過既然都訂了，我們就提早了不少出發。</p><p>到了新竹，我才猛然想起自己忘了帶小米手環的充電線，於是我們一路從火車站走去大遠百，去到裡面的小米實體店，我們目標明確，一進去就問了店員：「有沒有我這個手環的充電線？」但不幸的是，這麼舊型號的線已經只剩網購能買到了，我們也就只能作罷離開。我們隨後去查了查從大遠百到新舍商旅（即我們住的飯店）要怎麼去，結果發現從火車站過去還比較方便呢，但都走到這了，我們也不想花 100 多元搭 Uber，只好再花個半小時走過去，正好也就到了可以 Check-in 的時間。</p><p>原本我們是這麼想的，但結果走到剩 300 公尺時，有一段路被擋住了，是施工，我們只好再拖著重重的行李繞路，最後花了超多時間和精力，總算是回到了飯店。</p><p>放好行李，並做了短暫的歇息後，我們開始找晚餐，然後我們得出了一個多數人都知道的結論——<del>新竹根本美食沙漠</del>（玩笑）。我們最後選擇了旅館樓下不遠的三媽臭臭鍋作為晚餐。</p><p>晚餐後的生活，大概這三天都差不多：跟女友語音通話，然後三個人（包含 <a href="https://xieserver.com/">@閔捷</a>）嘴炮加幹話，再去買點酒、泡麵、零食，然後抱著筆電打 Code 到凌晨。</p><h2 id="第一天（29-號）"><a href="#第一天（29-號）" class="headerlink" title="第一天（29 號）"></a>第一天（29 號）</h2><p>今天是營隊正式開始的第一天，昨天和前台訂的 6:30 的 Morning Call 完全沒把我們叫醒，而是 <a href="https://xieserver.com/">@閔捷</a> 在 8:30 左右驚醒，然後把我搖醒，我們再光速出門，騎 YouBike 一路狂飆到清大，<del>還在旁邊的草叢那嘔吐了十分鐘</del>，好不容易在 9:10 左右抵達，結果就得知了一個更震驚我們的消息——報到時間到 9:30，我們一邊<del>罵街</del>後悔，一邊暗暗決定後面些天要訂 Uber 來了。</p><p>這個營隊的上課模式和大學別無二致，基本上就是多數時候聽教授教，我們再在有實操的部分自己努力（<del>或者煩隊輔</del>）。今天的課程基本上就是教一些平行運算和超算的東西，以及一些叢集運算的規範。我們先在 iServer 註冊帳號，並利用 SSH 連到國網中心（國家高速網路與計算中心）的「創進一號」，我們會在上面跑一些練習或作業的 Code，來讓我們能夠了解何謂「叢集運算（HPC）」。</p><div class="note note-info">            <p>創進一號（Forerunner 1, F1）為國網中心建置的高速計算主機，具備 558 台計算伺服器，共可提供 62,496 個計算核心；每台計算伺服器配備兩顆 56 核心 Intel Xeon Platinum 8480 + 2.0 GHz 處理器、InfiniBand 200 Gb/s 高速網路、512 GB 記憶體。</p> <p>（資料來源：<a href="https://www.nchc.org.tw/Page?itemid=2&amp;mid=4">國家高速網路與計算中心</a>）</p>           </div><p>午餐其實並不是這次營隊包辦的項目，因此我們一行人得自己出去校外吃，我們最開始是決定和隊輔一同出去吃飯，不過隊輔也有和他同學約好，最後我們竟然高達了 21 個人一起前去吃午飯。我們去了間叫「紅吱吱」的平價牛排，雖算不上好吃，但第一個和所有隊友坐同一桌一同吃飯的一餐還是挺值得紀念的吧。</p><p>至於晚餐，營隊在第一個晚上提供了 Pizza（<del>好耶又省一餐錢</del>），因此我們是直接在教室吃，省時又好吃，是我今天吃得最滿意的一餐了。</p><p>但課程還遠沒有結束，晚餐過後還有課程，課程表定到 21:30 才結束，而實際上我們甚至是到了 22:30 多才離開學校的，除了課堂上的練習外，我們還有 Homework 要做，我們可以去拼 Scoreboard 排名，盡可能把程式改得快到極致（不過排名還是會被前面的一群又肝又佬的電神霸占），我們小隊哪懂 C++ 啊，於是一群 Vibe Coding 之神只好一直在換 AI 和提交屎山到 OJ 上之間反覆橫跳。</p><p>課程結束後，我們拖著疲憊的身體，原本想的是可以訂 Uber 回去，但又想到來時的上坡路要是不滑回去豈不是虧大了？於是我們又頭鐵地去借了 YouBike，一路滑下坡，吹著早上用體力和毅力換來的晚風，回到了房間。</p><p>但晚上除了幹話、我喝冰結、<a href="https://xieserver.com/">@閔捷</a> 吃芭樂乾之外，我們還得用肝來換 Scoreboard 的排名，我「早早」地三點就睡了，但 <a href="https://xieserver.com/">@閔捷</a> 獨自幹到了四點<del>還不給我關燈</del>，實在是很有毅力了。</p><h2 id="第二天（30-號）"><a href="#第二天（30-號）" class="headerlink" title="第二天（30 號）"></a>第二天（30 號）</h2><p>今天早上我們總算是起床得比較從容了，我們也學乖了訂 Uber 前往清大，不過今天因為要去參觀國網中心，我們得提早半小時前去清大，再坐遊覽車過去國網中心。</p><p>我們這幾個同組的人被分配到了相鄰的座位，不過在我旁邊的是 <a href="https://qwo877.github.io/me/">@匿名用戶9487</a>，我們也藉這個機會好好地<del>嘴炮</del>交流了一番，也算是一個不錯的回憶了。</p><p>國網中心的參觀基本上都是聽演講，這對睡眠不足的我和 <a href="https://xieserver.com/">@閔捷</a> 而言，要不睡著簡直是不可能的任務，但好在我們也沒有睡多久，最重要的是，聽到了 HiPAC 國網盃的比賽資訊，我們眼睛一亮，當即決定了要去參加這個比賽，更大的影響是，我特選正取的中教大（台中教育大學）原本我對它的資工還存疑，但隨著講者提到中教大的超算很強，這讓我對中教大完全改了觀。</p><p>國網中心的行程結束後，我們去成功湖拍了張大合照（下圖）就去吃午餐了。這次倒是沒有二十幾人的飯局了，反而只有寥寥幾人去，不過我、<a href="https://xieserver.com/">@閔捷</a>、<a href="https://qwo877.github.io/me/">@匿名用戶9487</a>、隊輔都在，還有一些隊輔的朋友，我們六人一桌，去吃了這幾天來最好吃的餐廳「甘泉魚麵」，雖然剛開始吃飯時有點小尬尷，但到後面也算聊起來了，社交的部分還算順利。</p><img src="/img/HPC_camp_group_pic.JPG" class="d-block mx-auto mb-4" width="500" title="成功湖大合照"><p>下午和晚上的課程也是照例進行，主要在教 CPU、Core、MPI、OpenMP 等等，不知道是因為上手了，或者真的比較簡單，今天的實操體感上比昨天的順利不少，雖然仍然是需要依賴 AI，不過其實總體掌握感多過了昨天那種迷茫的感覺。</p><p>下午我們還有一個環節是參觀清大的圖書館，雖然去過了國家圖書館，已經看過了很厲害的圖書館，但作為校園的一部分，清大圖書館還是看得我相當震驚，領我們去看的領隊也耐心地向我們講解了一些關於清大的歷史和特色。</p><p>晚餐時間，今天清大依舊供應了一餐麥當勞，但我本人是對台灣老麥不太存有好感就是了。吃飯過程還有一個介紹清大資工系的節目，雖然特選結果都已塵埃落定，但我還是把它給聽完了，<del>反觀 <a href="https://xieserver.com/">@閔捷</a> 自己偷偷溜回教室卷 Homework 的排名</del>。</p><p>晚餐和晚上的課程結束後，我們還有一個參觀清大機房的節目，這完全進入了 <a href="https://xieserver.com/">@閔捷</a> 的舒適圈，但對硬體沒什麼研究的我，一趟下來只聽懂了機房有 5090 和 H100。不得不說，<a href="https://xieserver.com/">@閔捷</a> 在這裡完全展現了自己對硬體的精熟和勇往直前的社交能力，他到處給別人講解機房中的機器，還主動和一堆清大生搭話，甚至一度被別人誤認成清大生，我則只能在旁邊聽著一堆專有名詞發呆。不過不得不說，機房是真的蠻大聲的，下面這張是我在機房裡測的分貝數，實在很難想像長期待在這種環境的人耳朵能變成什麼樣子。</p><img src="/img/CHUH_computer_room_sound.png" class="d-block mx-auto mb-4" width="300" title="清大機房的分貝數"><p>今天放人的時間又是 22:00 多了，我們依然騎 YouBike 滑回飯店，但在某個紅燈時，我們發現了一個意外：「你外套呢？」我問道，「啊！忘在清大了，笑死。」<a href="https://xieserver.com/">@閔捷</a> 回，這聽起來好像沒什麼問題，實則問題大了，明天就是退房日，但他將房卡放在了外套口袋中……。</p><p>晚上的生活誠如前面說的，就是嘴炮、打 Code 做作業、喝酒吃零食，依然是 3:00 睡覺。</p><h2 id="第三天（31-號）"><a href="#第三天（31-號）" class="headerlink" title="第三天（31 號）"></a>第三天（31 號）</h2><p>今天早上的起床倒是沒什麼困難，但退房時就有些尬尷了，「呃……房卡？」我交出房卡後，與櫃檯人員對視一秒後，他問道：「應該會有兩張吧？」，最後 <a href="https://xieserver.com/">@閔捷</a> 只好悻悻地賠了 200 元，喜提新舍商旅 611 號房房卡一張。</p><p>今天的課程就容易得多了，早上在講一些 AI 概論，也就是我們學校 AI 班課程和我參加過的所有 AI 活動都會講，我已經聽好幾次的那套理論，什麼 ML、DL、RNN、Transformer 架構、注意力機制等等，還有用 Colab 玩一些基礎 CV 的項目，這是何其親切啊，尤其對於摸了兩天 C++ 的我來說。</p><p>今天午餐就比較隨意了，我們找了教室樓下的全家，隨意買了點東西果腹，<a href="https://xieserver.com/">@閔捷</a> 這個認真魔人吃完後就急急地跑回去卷 Code 排名了，而我則是慢悠悠地吃完麵才回教室休息。</p><p>下午就比較輕鬆了，課程到了表定的 16:00 後，就進入了這個營隊最後一個階段——閉幕式。其實我本來還不知道這個營隊是有設獎項的，不過我們這個 Vibe Coding 小隊竟然還拿了不少次獎，我個人就拿了兩個獎項，而我們小隊還又拿了一個小隊的獎項，於是我得到了一個清大的插頭（轉接頭）、可以貼到筆電上的「國立清華大學叢集電腦競賽團隊」貼紙、國網中心的外套之外，加上每人都有送的 3D 列印手機架和第一天小遊戲拿到的撲克牌，這一趟下來可真是盆滿缽滿。</p><p>其實整個閉幕式的過程之中，<a href="https://xieserver.com/">@閔捷</a> 還主動和一堆清大學生交換了 IG，我順勢在他後面也交換了不少 DC，但加好友歸加好友，他的社交能力實在讓我尤為佩服，也終於能夠明白了他為什麼可以擁有如此龐大的人脈，更是讓我學會了另一種我從未思考過的社交觀念，這大概是我這一趟清大三日遊學到最寶貴的東西了。受了他的鼓舞，我也隨即提議去交換教授的聯繫方式，而教授人很好地和我們加了 LINE，「這個連我們都沒有欸！」我們隊輔如此說道。</p><p>一切活動都結束後，我和 <a href="https://xieserver.com/">@閔捷</a> 還留下來跟我們的小隊輔電神聊了一段時間，問了蠻多關於國網盃競賽和 HPC 相關的問題，讓我收獲滿滿。經歷了充實又費精力的營隊後，我們搭著區間車回台北，沿路也一直計劃著國網盃的比賽和組伺服器等事宜，相約在半年後可以一起做出點成績。</p><div class="group-image-container"><div class="group-image-row"><div class="group-image-wrap"><img src="/img/HPC_award.JPG" alt="個人獲獎"></div><div class="group-image-wrap"><img src="/img/HPC_group_award.JPG" alt="小隊獲獎"></div><div class="group-image-wrap"><img src="/img/HPC_group.JPG" alt="小隊團照"></div></div><div class="group-image-row"><div class="group-image-wrap"><img src="/img/HPC_winter_camp.jpg" alt="結業證書"></div><div class="group-image-wrap"><img src="/img/HPC_sticker_laptop.jpg" alt="清大 HPC 貼紙"></div></div></div>]]>
    </content>
    <id>https://chuen666666.com/%E6%B8%85%E8%8F%AF%E5%A4%A7%E5%AD%B8%E9%AB%98%E9%80%9F%E8%A8%88%E7%AE%97%E4%BA%BA%E5%B7%A5%E6%99%BA%E6%85%A7%E5%86%AC%E4%BB%A4%E7%87%9F%E2%80%94%E2%80%94%E5%8F%83%E5%8A%A0%E5%BF%83%E5%BE%97/</id>
    <link href="https://chuen666666.com/%E6%B8%85%E8%8F%AF%E5%A4%A7%E5%AD%B8%E9%AB%98%E9%80%9F%E8%A8%88%E7%AE%97%E4%BA%BA%E5%B7%A5%E6%99%BA%E6%85%A7%E5%86%AC%E4%BB%A4%E7%87%9F%E2%80%94%E2%80%94%E5%8F%83%E5%8A%A0%E5%BF%83%E5%BE%97/"/>
    <published>2026-01-31T07:29:40.000Z</published>
    <summary>我和 @閔捷 參加了 2026 年 1 月底的清大 HPC 寒令營</summary>
    <title>清華大學高速計算人工智慧冬令營——參加心得</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="程式" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/"/>
    <category term="專案" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/%E5%B0%88%E6%A1%88/"/>
    <category term="筆記" scheme="https://chuen666666.com/tags/%E7%AD%86%E8%A8%98/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="教學" scheme="https://chuen666666.com/tags/%E6%95%99%E5%AD%B8/"/>
    <content>
      <![CDATA[<p>Markdown（MD）作為一個極輕量化的標記語言，對於寫程式的人來說是一項不能不會的東西，除了自己的筆記可以方便地用它外，許多文檔說明也得用 MD 來寫，例如 GitHub 的 <code>README.md</code> 就是最具代表性的例子，所以這篇文章會整理 MD 的語法和一些注意事項，幫助大家寫出好看的 MD 文件。</p><div class="note note-warning">            <p>因為 MD 在不同環境下可能會有些微的語法差異，故此篇筆記僅會整理標準 MD 語法<br>也是可以直接應用在 <code>README.md</code> 等文件的語法</p>           </div><h2 id="一般文字"><a href="#一般文字" class="headerlink" title="一般文字"></a>一般文字</h2><p>在 MD 中，若想寫兩行文字，則在寫 MD 時需要在兩行中間多空一行，否則它只會以空格的形式呈現。</p><p>例如：</p><ul><li><p>錯誤示範</p><figure class="highlight md"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs md">第一行<br>第二行<br></code></pre></td></tr></table></figure><p>&darr;</p><img src="/img/MD_sameline.png" class="" title="行間沒空一行"></li><li><p>正確示範</p><figure class="highlight md"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs md">第一行<br><br>第二行<br></code></pre></td></tr></table></figure><p>&darr;</p><img src="/img/MD_newline.png" class="" title="行間有空一行"></li></ul><h2 id="大標"><a href="#大標" class="headerlink" title="大標"></a>大標</h2><p>一般來說，MD 的大標有六個層級，從最大的 H1（<code>#</code>）到最小的 H6（<code>######</code>）。不過少部分環境可能只會有</p><p>這裡需要特別注意的是，一般來說整篇文章只會有一個 H1 的大標，且放在首行，作為整篇文章的標題（GitHub 的 <code>README.md</code> 可放 Repo 名或自取作品名），其餘大標都是從 H2 開始，且中間不能突然跳過一個層級（如 H3 直接跳 H5）。但也有例外，例如用 Hexo 寫文章時，因為有 Front-matter 設標題，整篇就都不會有 H1 層級的標題出現了。</p><figure class="highlight md"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs md"><span class="hljs-section"># H1（# 後方要加空格）</span><br><span class="hljs-section">## H2</span><br><span class="hljs-section">### H3</span><br><span class="hljs-section">#### H4</span><br><span class="hljs-section">##### H5</span><br><span class="hljs-section">###### H6</span><br></code></pre></td></tr></table></figure><h2 id="行內文字效果"><a href="#行內文字效果" class="headerlink" title="行內文字效果"></a>行內文字效果</h2><figure class="highlight md"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs md"><span class="hljs-strong">**粗體**</span> 或 <span class="hljs-strong">__粗體__</span><br><br><span class="hljs-emphasis">*斜體*</span> 或 <span class="hljs-emphasis">_斜體_</span><br><br>~~刪除線~~<br><br><span class="hljs-code">`行內程式碼`</span><br></code></pre></td></tr></table></figure><p>&darr;</p><p><strong>粗體</strong> 或 <strong>粗體</strong></p><p><em>斜體</em> 或 <em>斜體</em></p><p><del>刪除線</del></p><p><code>行內程式碼</code></p><h2 id="清單"><a href="#清單" class="headerlink" title="清單"></a>清單</h2><figure class="highlight md"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs md"><span class="hljs-bullet">-</span> 無序（也可以用 <span class="hljs-code">`*`</span> 或 <span class="hljs-code">`+`</span>，效果一樣）<br><span class="hljs-bullet">  -</span> 子清單<br><span class="hljs-bullet">    -</span> 子的子清單<br><span class="hljs-bullet">      -</span> 子的子的子清單<br><span class="hljs-bullet">        -</span> ...<br><br><span class="hljs-bullet">1.</span> 有序（數和文之間要一個空格）<br><span class="hljs-bullet">2.</span> 有序<br><span class="hljs-bullet">3.</span> ...<br></code></pre></td></tr></table></figure><p>&darr;</p><ul><li>無序（也可以用 <code>*</code> 或 <code>+</code>，效果一樣）<ul><li>子清單<ul><li>子的子清單<ul><li>子的子的子清單<ul><li>…</li></ul></li></ul></li></ul></li></ul></li></ul><ol><li>有序（數和文之間要一個空格）</li><li>有序</li><li>…</li></ol><h2 id="引用與連結"><a href="#引用與連結" class="headerlink" title="引用與連結"></a>引用與連結</h2><ul><li>引用：<code>&gt; 引用文字</code></li><li>連結：<code>[顯示文字](URL)</code></li><li>圖片：<code>![替代文字](圖片URL)</code></li><li>分隔線：<code>---</code> 或 <code>***</code></li></ul><figure class="highlight md"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><code class="hljs md"><span class="hljs-quote">&gt; 引用文字第一行</span><br><span class="hljs-quote">&gt; 引用文字第二行</span><br><span class="hljs-quote">&gt; ...</span><br><br>[<span class="hljs-string">好看的影片</span>](<span class="hljs-link">https://youtu.be/dQw4w9WgXcQ?si=xeHnY2UvfANwzHZX</span>)<br><br>![<span class="hljs-string">好看的圖片</span>](<span class="hljs-link">https://media.tenor.com/x8v1oNUOmg4AAAAM/rickroll-roll.gif</span>)<br><br>分隔線上<br><br>---<br><br>分隔線下<br></code></pre></td></tr></table></figure><p>&darr;</p><blockquote><p>引用文字第一行<br>引用文字第二行<br>…</p></blockquote><p><a href="https://youtu.be/dQw4w9WgXcQ?si=xeHnY2UvfANwzHZX">好看的影片</a></p><p><img src="https://media.tenor.com/x8v1oNUOmg4AAAAM/rickroll-roll.gif" alt="好看的圖片"></p><p>分隔線上</p><hr><p>分隔線下</p><h2 id="表格"><a href="#表格" class="headerlink" title="表格"></a>表格</h2><figure class="highlight md"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs md">| 標題 | 標題 | 標題 |<br>| :--- | :--: | --: |<br>| 左對齊 | 置中 | 右對齊 |<br>| 左 | 中 | 右 |<br></code></pre></td></tr></table></figure><p>&darr;</p><div class="table-container"><table><thead><tr><th style="text-align:left">標題</th><th style="text-align:center">標題</th><th style="text-align:right">標題</th></tr></thead><tbody><tr><td style="text-align:left">左對齊</td><td style="text-align:center">置中</td><td style="text-align:right">右對齊</td></tr><tr><td style="text-align:left">左</td><td style="text-align:center">中</td><td style="text-align:right">右</td></tr></tbody></table></div><h2 id="程式碼區塊"><a href="#程式碼區塊" class="headerlink" title="程式碼區塊"></a>程式碼區塊</h2><p>使用三個反引號（Backticks）包裹，並在第一組反引號後方加上語言名稱（如 <code>python</code>、<code>javascript</code>、<code>html</code>），即可實現語法高亮（Syntax Highlighting）。</p><figure class="highlight md"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs md"><span class="hljs-code">```python</span><br><span class="hljs-code">print(&#x27;Hello World&#x27;)</span><br><span class="hljs-code">```</span><br></code></pre></td></tr></table></figure><p>&darr;</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;Hello World&#x27;</span>)<br></code></pre></td></tr></table></figure><h2 id="常用-HTML"><a href="#常用-HTML" class="headerlink" title="常用 HTML"></a>常用 HTML</h2><p>Markdown 支援直接嵌入 HTML 標籤，非常好用，以下列出常見的幾種效果：</p><div class="table-container"><table><thead><tr><th style="text-align:center">功能</th><th style="text-align:center">語法</th><th style="text-align:center">效果</th></tr></thead><tbody><tr><td style="text-align:center">鍵盤按鍵</td><td style="text-align:center"><code>&lt;kbd&gt;KEY&lt;/kbd&gt;</code></td><td style="text-align:center"><kbd>KEY</kbd></td></tr><tr><td style="text-align:center">換行</td><td style="text-align:center"><code>&lt;br&gt;</code></td><td style="text-align:center">（換行）</td></tr><tr><td style="text-align:center">左箭</td><td style="text-align:center"><code>&amp;larr;</code></td><td style="text-align:center">&larr;</td></tr><tr><td style="text-align:center">右箭</td><td style="text-align:center"><code>&amp;rarr;</code></td><td style="text-align:center">&rarr;</td></tr><tr><td style="text-align:center">上箭</td><td style="text-align:center"><code>&amp;uarr;</code></td><td style="text-align:center">&uarr;</td></tr><tr><td style="text-align:center">下箭</td><td style="text-align:center"><code>&amp;darr;</code></td><td style="text-align:center">&darr;</td></tr><tr><td style="text-align:center">左雙箭</td><td style="text-align:center"><code>&amp;lArr;</code></td><td style="text-align:center">&lArr;</td></tr><tr><td style="text-align:center">右雙箭</td><td style="text-align:center"><code>&amp;rArr;</code></td><td style="text-align:center">&rArr;</td></tr><tr><td style="text-align:center">上雙箭</td><td style="text-align:center"><code>&amp;uArr;</code></td><td style="text-align:center">&uArr;</td></tr><tr><td style="text-align:center">下雙箭</td><td style="text-align:center"><code>&amp;dArr;</code></td><td style="text-align:center">&dArr;</td></tr><tr><td style="text-align:center">版權</td><td style="text-align:center"><code>&amp;copy;</code></td><td style="text-align:center">&copy;</td></tr><tr><td style="text-align:center">大於等於</td><td style="text-align:center"><code>&amp;ge;</code></td><td style="text-align:center">&ge;</td></tr><tr><td style="text-align:center">小於等於</td><td style="text-align:center"><code>&amp;le;</code></td><td style="text-align:center">&le;</td></tr></tbody></table></div><p>另外，也可以使用 <code>&lt;span style=&quot;color:顏色&quot;&gt;文字&lt;/span&gt;</code> 來指定文字顏色，例如紅色寫成 <code>&lt;span style=&quot;color:red&quot;&gt;紅色文字&lt;/span&gt;</code>。</p><div class="note note-info">            <p>更多資訊可以參考 <a href="https://www.w3schools.com/html/">w3schools</a></p>           </div><figure class="highlight md"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs md"><span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">style</span>=<span class="hljs-string">&quot;color:red&quot;</span>&gt;</span></span>RED<span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span></span> &amp;rarr; <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">style</span>=<span class="hljs-string">&quot;color:green&quot;</span>&gt;</span></span>GREEN<span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span></span> &amp;rarr; <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">style</span>=<span class="hljs-string">&quot;color:blue&quot;</span>&gt;</span></span>BLUE<span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span></span><br></code></pre></td></tr></table></figure><p>&darr;</p><p><span style="color:red">RED</span> &rarr; <span style="color:green">GREEN</span> &rarr; <span style="color:blue">BLUE</span></p><h2 id="VS-Code-擴充套件"><a href="#VS-Code-擴充套件" class="headerlink" title="VS Code 擴充套件"></a>VS Code 擴充套件</h2><p>如果希望在 VS Code 中可以更方便地寫 MD 檔的話，可以考慮去安裝擴充套件：</p><ul><li><a href="https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one">Markdown All in One</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint">markdownlint</a></li></ul>]]>
    </content>
    <id>https://chuen666666.com/%E9%82%84%E4%B8%8D%E6%9C%83%E5%AF%ABMarkdown%EF%BC%9F%E4%B8%8D%E8%A6%81%E5%86%8D%E5%AF%AB%E9%86%9C%E9%86%9C%E7%9A%84README-md%E4%BA%86%EF%BC%81/</id>
    <link href="https://chuen666666.com/%E9%82%84%E4%B8%8D%E6%9C%83%E5%AF%ABMarkdown%EF%BC%9F%E4%B8%8D%E8%A6%81%E5%86%8D%E5%AF%AB%E9%86%9C%E9%86%9C%E7%9A%84README-md%E4%BA%86%EF%BC%81/"/>
    <published>2026-01-30T07:13:58.000Z</published>
    <summary>整理並說明基礎的 Mrakdown 語法</summary>
    <title>還不會寫 Markdown？不要再寫醜醜的 README.md 了！</title>
    <updated>2026-05-17T09:26:02.802Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="神奇小玩意" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A5%9E%E5%A5%87%E5%B0%8F%E7%8E%A9%E6%84%8F/"/>
    <category term="教學" scheme="https://chuen666666.com/tags/%E6%95%99%E5%AD%B8/"/>
    <category term="輸入法" scheme="https://chuen666666.com/tags/%E8%BC%B8%E5%85%A5%E6%B3%95/"/>
    <category term="倉頡輸入法" scheme="https://chuen666666.com/tags/%E5%80%89%E9%A0%A1%E8%BC%B8%E5%85%A5%E6%B3%95/"/>
    <content>
      <![CDATA[<p>寫這篇文章時我是高三上，我大約是從高一下才開始學習倉頡，而在此之前，我的注音已經達到了一分鐘 100+ 字。不過在我時常打粵語字和偶爾打台語字時，我仍發現了使用「音」來輸入的壞處——漢字不只有被普通話使用，但不同語言讀音不同。</p><p>我開始思考去使用以「形」作為主邏輯的輸入法，這在市面上也不算少數，嘸蝦米就是一個經典例子，不過之所以選擇倉頡，是因為我希望找到一個既免費，又是 Windows 系統自帶的，並且盡可能不要讓我有選字的機會的，於是我就開始了倉頡的學習，到現在它已經變成了我主要使用的輸入法了。</p><h2 id="基本介紹"><a href="#基本介紹" class="headerlink" title="基本介紹"></a>基本介紹</h2><h3 id="字碼"><a href="#字碼" class="headerlink" title="字碼"></a>字碼</h3><p>倉頡一共有 24 + 1 + 1 個字碼，剛好可以對應上英文的 26 個字母，也就是說，它可以讓你在沒有數字鍵區的鍵盤中，不需要切換成英打就能打數字。</p><p>為什麼說是 24 + 1 + 1 呢？因為它是由 24 個碼以及「重（Z）」和「難（X）」組成。這兩個碼的功能比較不同，「難」碼代表的是無法被拆的部分，有點類似於「其他」的概念；「重」則是不可能出現在字碼裡的，它只是用來打標點符號之用，另外它在手機輸入法中，也作為一個「不知道那個是什麼碼的占位符」，但電腦中大多無此用法。這些特殊用法會在之後的章節中展開說明。</p><p>有趣的是，這兩個特殊碼都不能直接打出它們原本的兩個字，而其他所有碼都能打出自己。例如「人」的倉頡碼就是「人」，但「難」拆成「廿人人土」，而「重」拆成「竹十田土」。</p><h3 id="輸入"><a href="#輸入" class="headerlink" title="輸入"></a>輸入</h3><p>每打完一個字的倉頡碼時，需要按一下 <kbd>Space</kbd> 來輸入。</p><h3 id="選字"><a href="#選字" class="headerlink" title="選字"></a>選字</h3><p>以 Windows 版而言，倉頡輸入法不會像注音那樣，隨使用次數增加而改變選字次序，而是無論打了幾次、在哪台電腦上打，它選字順序都會完全相同。另外，如果用的是「倉頡」而不是「新倉頡」（雖然叫新倉頡，但其實倉頡比新倉頡新），它的選字方式不會像注音一樣有底線要自己按，而是在有選字選項時會自動跳出選單，直接按數字即可選字，而若無須選字，直接打下個字也可以繼續輸入。</p><h3 id="版本"><a href="#版本" class="headerlink" title="版本"></a>版本</h3><p>現在主流的倉頡版本為第三代和第五代倉頡（下簡稱三倉和五倉），一般 Windows 系統自帶的都是三倉，而手機則多數為二者都支援。</p><h2 id="環境安裝"><a href="#環境安裝" class="headerlink" title="環境安裝"></a>環境安裝</h2><p>前面說了，倉頡是一個 Windows 自帶的輸入法，而其使用人數之多，也讓它成為了各大系統必定會內建的輸入法之一。</p><p>以 Windows 系統為例：</p><ol><li>打開 <code>設定</code> &rarr; 搜尋 <code>鍵盤</code> &rarr; 進入 <code>語言與地區</code> &rarr; <code>繁體中文（台灣）</code> 右邊的三個點點 &rarr; <code>語言選項</code> &rarr; <code>新增鍵盤</code> &rarr; <code>微軟倉頡</code></li><li>依自己喜好修改 <code>提示輸入字元的相關片語</code> 和 <code>使用嗶聲來通知輸入錯誤</code>（我個人是全關）</li><li>下方 <code>字元集</code> 部分，將下拉選單選到 <code>標準和中日韓統一的表意字元擴充 A</code>，並開啟下方 <code>包含香港增補字符集字元（HKSCS）</code> 選項<ul><li>這兩個選項開啟後，才能打出一些普通話極不常用的粵字，例如 <strong>㗎（口大口木）</strong>，不過若平時不會用到這些字，也可以考慮關閉以減少選字</li></ul></li></ol><h2 id="拆字原理"><a href="#拆字原理" class="headerlink" title="拆字原理"></a>拆字原理</h2><p>拆字的過程可以分成以下幾個步驟：</p><h3 id="1-幾個部分"><a href="#1-幾個部分" class="headerlink" title="1. 幾個部分"></a>1. 幾個部分</h3><p>首先，我們要先判斷一個字有幾個部分，它分別可能會是一、二、三個部分。</p><div class="group-image-container"><div class="group-image-row"><div class="group-image-wrap"><img src="/img/word_me.png" alt="「我」被拆成一個部分"></div><div class="group-image-wrap"><img src="/img/word_you.png" alt="「你」被拆成兩個部分"></div><div class="group-image-wrap"><img src="/img/word_ah.png" alt="「啊」被拆成三個部分"></div></div></div><h3 id="2-幾個部分的對應規則"><a href="#2-幾個部分的對應規則" class="headerlink" title="2. 幾個部分的對應規則"></a>2. 幾個部分的對應規則</h3><p>倉頡所有拆字順序都是以「由左至右」和「由上至下」為原則。</p><p>因為倉頡至多只會拆成五碼，意味著有些字不會每個部分都被拆到，而哪些部分拆哪些部分留，就是依照第一步的判斷所對應的規則來決定。</p><div class="table-container"><table><thead><tr><th style="text-align:center">幾個部分的字</th><th style="text-align:center">最多拆成幾碼</th><th style="text-align:center">每部分拆法</th></tr></thead><tbody><tr><td style="text-align:center">1</td><td style="text-align:center">4</td><td style="text-align:center">首3碼+尾碼</td></tr><tr><td style="text-align:center">2</td><td style="text-align:center">5</td><td style="text-align:center">第一部分首一碼+尾一碼，<br>第二部分首兩碼+尾一碼</td></tr><tr><td style="text-align:center">3</td><td style="text-align:center">5</td><td style="text-align:center">第一部分首一碼+尾一碼，<br>第二部分首一碼+尾一碼，<br>第三部分尾一碼</td></tr></tbody></table></div><p>另外，字拆到拆完為止，不會有東西被重複拆到。</p><h3 id="3-筆劃對應什麼碼"><a href="#3-筆劃對應什麼碼" class="headerlink" title="3. 筆劃對應什麼碼"></a>3. 筆劃對應什麼碼</h3><p>這裡是最需要背和大量練習的地方了，也是最勸退新手的部分，也就是每個拆解的部分對應到什麼倉頡碼，例如一撇（丿）對應到倉頡碼的「竹」，這個對應碼事實上被稱為「輔助字形」。</p><img src="/img/auxiliary.png" class="" title="輔助字形一覽表"><blockquote><p>圖片來源：<a href="https://www.xn--0vqu8au0tro7d.com/news/%E7%94%9A%E9%BA%BC%E6%98%AF%E5%80%89%E9%A0%A1%E8%BC%B8%E5%85%A5%E6%B3%95">倉頡字典</a></p></blockquote><h3 id="4-特例：包圍結構"><a href="#4-特例：包圍結構" class="headerlink" title="4. 特例：包圍結構"></a>4. 特例：包圍結構</h3><p>若一個字中有「包圍結構」，則它只有在「拆完後還不夠」時才拆，否則會略過。</p><h3 id="舉例"><a href="#舉例" class="headerlink" title="舉例"></a>舉例</h3><p>假設我想打「幹」這個字，我們就要先把它看成左右兩部分。左邊可以看成「十日十」，右邊可以看成「人一十」，不過由於左右拆時只會取左邊的<strong>首一 + 尾一</strong>和右邊的<strong>首二 + 尾二</strong>，故左只取「十十」，右邊則沒東西被忽略掉，仍是「人一十」。</p><img src="/img/gan_cangje.png" class="" title="「幹」倉頡拆法"><blockquote><p>圖片來源：<a href="https://www.hkcards.com/cj/cj-char-%E5%B9%B9.html">hkcards</a></p></blockquote><p>另一個例子，若我想拆「豐」字，首先它屬於「兩個部分的字」，上半部分又包含包圍結構。我們可以把上面先拆出「山」，但因為其他部分都是包圍結構，因此只能拆「ㄩ」字形裡的「十」；下半部分則依規則正常拆出「一口廿」。</p><img src="/img/fong.png" class="" title="「豐」倉頡拆法"><blockquote><p>圖片來源：<a href="https://www.hkcards.com/cj/cj-char-%E8%B1%90.html">hkcards</a></p></blockquote><h2 id="用「重」碼打標點符號"><a href="#用「重」碼打標點符號" class="headerlink" title="用「重」碼打標點符號"></a>用「重」碼打標點符號</h2><p>在倉頡中，除了可以用注音也在使用的快捷鍵來打標點符號以外，其實還有一種方式是通過「重（Z）」碼開頭的字來打。舉例來說，逗號不僅可以用 <kbd>Ctrl</kbd> <kbd>,</kbd> 打之外，也可以以「重難日月」來打。</p><a class="btn" href="<https://www.ifreesite.com/typing/cangjie-3.htm>"  title="線上工具" target="_blank">倉頡標點符號一覽表</a><blockquote><p>只要看最上面那張包含新式標點符號的表格即可</p></blockquote><p>仔細觀察就會發現，它其實有它的邏輯，它是以「重難」兩碼開頭，後面兩碼則是以英文來排，例如逗號、頓號、句號就分別是 AB、AC、AD，以此類推。</p><p>因為以英文來編排，符號和碼本身的關聯性其實就不太大了，也因此就只能通過背的方式來學，不過我個人是沒有特別記，常用的查個兩、三次自然就會記得了。</p>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-c35c30c6" role="button" aria-expanded="false" aria-controls="collapse-c35c30c6">        <div class="fold-arrow">▶</div>個人推薦可記的符號      </div>      <div class="fold-collapse collapse" id="collapse-c35c30c6">        <div class="fold-content">          <div class="table-container"> <table> <thead> <tr> <th style="text-align:center">標點符號</th> <th style="text-align:center">倉頡碼</th> <th style="text-align:center">鍵盤位置</th> </tr> </thead> <tbody> <tr> <td style="text-align:center">，</td> <td style="text-align:center">重難日月</td> <td style="text-align:center">ZXAB</td> </tr> <tr> <td style="text-align:center">、</td> <td style="text-align:center">重難日金</td> <td style="text-align:center">ZXAC</td> </tr> <tr> <td style="text-align:center">。</td> <td style="text-align:center">重難日木</td> <td style="text-align:center">ZXAD</td> </tr> <tr> <td style="text-align:center">；</td> <td style="text-align:center">重難日土</td> <td style="text-align:center">ZXAG</td> </tr> <tr> <td style="text-align:center">：</td> <td style="text-align:center">重難日竹</td> <td style="text-align:center">ZXAH</td> </tr> <tr> <td style="text-align:center">？</td> <td style="text-align:center">重難日戈</td> <td style="text-align:center">ZXAI</td> </tr> <tr> <td style="text-align:center">！</td> <td style="text-align:center">重難日十</td> <td style="text-align:center">ZXAJ</td> </tr> <tr> <td style="text-align:center">…</td> <td style="text-align:center">重難日中</td> <td style="text-align:center">ZXAL</td> </tr> <tr> <td style="text-align:center">（</td> <td style="text-align:center">重難月水</td> <td style="text-align:center">ZXBE</td> </tr> <tr> <td style="text-align:center">）</td> <td style="text-align:center">重難月火</td> <td style="text-align:center">ZXBF</td> </tr> <tr> <td style="text-align:center">《</td> <td style="text-align:center">重難月山</td> <td style="text-align:center">ZXBU</td> </tr> <tr> <td style="text-align:center">》</td> <td style="text-align:center">重難月女</td> <td style="text-align:center">ZXBV</td> </tr> <tr> <td style="text-align:center">「</td> <td style="text-align:center">重難金木</td> <td style="text-align:center">ZXCD</td> </tr> <tr> <td style="text-align:center">」</td> <td style="text-align:center">重難金水</td> <td style="text-align:center">ZXCE</td> </tr> <tr> <td style="text-align:center">『</td> <td style="text-align:center">重難金竹</td> <td style="text-align:center">ZXCH</td> </tr> <tr> <td style="text-align:center">』</td> <td style="text-align:center">重難金戈</td> <td style="text-align:center">ZXCI</td> </tr> </tbody> </table> </div>         </div>      </div>    </div><h2 id="如何練習"><a href="#如何練習" class="headerlink" title="如何練習"></a>如何練習</h2><p>練習分成「怎麼拆字」和「怎麼打字」兩個面向：</p><h3 id="怎麼拆字"><a href="#怎麼拆字" class="headerlink" title="怎麼拆字"></a>怎麼拆字</h3><p>這個還算好練習，平時在電腦上練習的話，我會推薦 <a href="https://www.hkcards.com/">hkcards</a> 這個網站，它除了可以查詢每個字怎麼拆之外，也提供了一些難字拆字的解說，而且這個網站真的是我目前為止看到最直觀表現如何拆字的網站了，真心推薦。</p><p>至於手機，其實也有一堆 App 可以練，去 App Store 或 Google Play 隨便一搜「倉頡拆字練習」都有一大堆，平時就可以利用空閒時間在外也能練倉頡。</p><h3 id="怎麼打字"><a href="#怎麼打字" class="headerlink" title="怎麼打字"></a>怎麼打字</h3><p>我會推薦新手盡量都去學習正規的打字方式，因為我從小無論學的是注音、英打還是倉頡，都有遵守標準打字指法，這也讓我可以在幾乎一上手倉頡時就能夠盲打。</p><img src="/img/typing_hand.png" class="" title="打字標準指法示意圖"><blockquote><p>圖片來源：<a href="https://class.kh.edu.tw/16/page/view/15">高雄市教育局</a></p></blockquote><p>因為手機打倉頡實在是有夠難打，所以其實我在手機上都仍是以注音為主，不過新手若想先熟悉一下倉頡的鍵盤位置，也可以裝來用用看就是了。這裡說的練習方法還是以電腦打字為主，我一樣是推薦去 <a href="https://www.hkcards.com/">hkcards</a> 練習，它也提供了一堆專項訓練，我當初也是靠大量玩它來上手的，而上手後再到熟悉的過程，打字速度和準確度就是隨著日常不斷增加打字量而疊起來的。</p><h2 id="結語"><a href="#結語" class="headerlink" title="結語"></a>結語</h2><p>剛開始學習時肯定會覺得困難，也會覺得在各種場合下「好像不適合作為我練習打字的場合」，但如果你無法主動將它設定為主力輸入法，就永遠也不可能熟悉它。而起步時，幾乎每個字都要查個好幾次才會打，都是件十分合理的事，因為它真的不如注音那麼直覺，不過拆字這種能力，也是能夠通過大量練習而抓到感覺的，打到後面，它就能夠成為一個在腦中可以處理非常快的東西了。</p><p>當你上手它之後，你會發現因為選字機會減少，錯字率也呈指數性降低，並且你再也不會需要用很奇怪的方式來打台語或粵語字了。另一個大好處是，你會在真的拿筆寫字時發現，似乎比較不會因為太久沒寫字而突然忘記字怎麼寫。</p><p>學習倉頡是一個蠻有趣的過程，雖然我高一、二時也花了超多時間在適應，但用到現在發現，它真的很好用。</p>]]>
    </content>
    <id>https://chuen666666.com/%E5%8D%81%E5%8D%81%E4%BA%BA%E4%B8%80%E5%8D%81%EF%BC%81%E5%80%89%E9%A0%A1%E6%98%AF%E4%BB%80%E9%BA%BC%E7%A5%9E%E5%A5%87%E7%9A%84%E8%BC%B8%E5%85%A5%E6%B3%95%EF%BC%9F/</id>
    <link href="https://chuen666666.com/%E5%8D%81%E5%8D%81%E4%BA%BA%E4%B8%80%E5%8D%81%EF%BC%81%E5%80%89%E9%A0%A1%E6%98%AF%E4%BB%80%E9%BA%BC%E7%A5%9E%E5%A5%87%E7%9A%84%E8%BC%B8%E5%85%A5%E6%B3%95%EF%BC%9F/"/>
    <published>2026-01-23T05:22:25.000Z</published>
    <summary>從原理理論到實際練習方法，超完整的倉頡輸入法教學文章</summary>
    <title>十十人一十！倉頡是什麼神奇的輸入法？</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="搞耍" scheme="https://chuen666666.com/categories/%E6%90%9E%E8%80%8D/"/>
    <category term="搞耍" scheme="https://chuen666666.com/tags/%E6%90%9E%E8%80%8D/"/>
    <category term="不認真" scheme="https://chuen666666.com/tags/%E4%B8%8D%E8%AA%8D%E7%9C%9F/"/>
    <category term="女友" scheme="https://chuen666666.com/tags/%E5%A5%B3%E5%8F%8B/"/>
    <content>
      <![CDATA[<p>受 <a href="https://blog.ldn970110.com/">@LDN</a> 和其他廣大<del>單身魯蛇</del>朋友的要求，就來出一篇給他們的脫單教學文：）</p><div class="note note-warning">            <p>本篇純屬娛樂，僅供參考，如有不滿，請按下 <kbd>Ctrl</kbd> <kbd>W</kbd><br>但在留言區耍智障的留言，隨時歡迎</p>           </div><h2 id="交往前，不要付出太多"><a href="#交往前，不要付出太多" class="headerlink" title="交往前，不要付出太多"></a>交往前，不要付出太多</h2><p>生活重心在自己身上，否則不僅會讓他覺得理所當然，自己還會自我感動，到時候追不到，要安慰你的也是我們</p><h2 id="花錢請花在創造回憶"><a href="#花錢請花在創造回憶" class="headerlink" title="花錢請花在創造回憶"></a>花錢請花在創造回憶</h2><p>例如一起出去玩、吃飯等，送禮不要花太多，除非你是 <a href="https://yilinguo121.github.io/">@郭10</a> 不差錢，還能用錢把人砸死，&#x1FAA1; &#x1F9F5; &#x1FAB5;</p><h2 id="你跟他地位平等"><a href="#你跟他地位平等" class="headerlink" title="你跟他地位平等"></a>你跟他地位平等</h2><p>不要刻意討好，不然你看起來會很像小丑</p><h2 id="進攻慎選時機"><a href="#進攻慎選時機" class="headerlink" title="進攻慎選時機"></a>進攻慎選時機</h2><p>時機得當=成功機會高</p><p>時機不當=出現在他與他好姐妹的群組裡吊起來笑</p><h2 id="如果你是帥潮，前面當我沒說"><a href="#如果你是帥潮，前面當我沒說" class="headerlink" title="如果你是帥潮，前面當我沒說"></a>如果你是帥潮，前面當我沒說</h2><p>畢竟<span class="spoiler" onclick="this.classList.add('open')">沒有五官哪來的三觀</span></p>]]>
    </content>
    <id>https://chuen666666.com/%E4%B8%96%E7%95%8C%E4%B8%8A%E6%9C%80%E9%A0%82%E7%9A%84%E4%BA%A4%E5%A5%B3%E5%8F%8B%E6%95%99%E5%AD%B8/</id>
    <link href="https://chuen666666.com/%E4%B8%96%E7%95%8C%E4%B8%8A%E6%9C%80%E9%A0%82%E7%9A%84%E4%BA%A4%E5%A5%B3%E5%8F%8B%E6%95%99%E5%AD%B8/"/>
    <published>2026-01-18T17:33:00.000Z</published>
    <summary>應廣大損友的要求，來出一篇超白癡的交女友文</summary>
    <title>世界上最頂的交女友教學</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="程式" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/"/>
    <category term="專案" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/%E5%B0%88%E6%A1%88/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="Python" scheme="https://chuen666666.com/tags/Python/"/>
    <category term="教學" scheme="https://chuen666666.com/tags/%E6%95%99%E5%AD%B8/"/>
    <category term="Linter" scheme="https://chuen666666.com/tags/Linter/"/>
    <category term="Formatter" scheme="https://chuen666666.com/tags/Formatter/"/>
    <category term="Ruff" scheme="https://chuen666666.com/tags/Ruff/"/>
    <content>
      <![CDATA[<p>首先先說，這篇文章並不會教你怎麼用命令行（CLI）來執行 Ruff，而是以 VS Code 為例，示範怎麼把 Ruff 設定在 IDE 中，並在每次存檔程式時執行。</p><p>文章的最後，也會教你如何設定 pre-commit，讓程式在被 commit 時，自動執行 Ruff 檢查和修正 Python 程式，甚至也會檢查和修正除了 Python 以外的檔案的一些簡單格式問題（如尾行 newline 等）。</p><h2 id="概念"><a href="#概念" class="headerlink" title="概念"></a>概念</h2><h3 id="PEP-8"><a href="#PEP-8" class="headerlink" title="PEP 8"></a>PEP 8</h3><p>在 Python 的官方文件中，其實有一套很知名的規範，定義了程式碼的<strong>推薦風格</strong>，這套風格就是很著名的 <a href="https://peps.python.org/pep-0008/">PEP 8</a>，它不是程式碼的硬性要求，實務上也不會全然按它寫的做，但它是一個經典的基礎，後來很多風格的變化都是從它而來的。</p><h3 id="Linter-VS-Formatter"><a href="#Linter-VS-Formatter" class="headerlink" title="Linter VS Formatter"></a>Linter VS Formatter</h3><div class="table-container"><table><thead><tr><th style="text-align:center">工具</th><th style="text-align:center">關注點</th><th style="text-align:center">舉例</th><th style="text-align:center">行為</th></tr></thead><tbody><tr><td style="text-align:center">Linter</td><td style="text-align:center"><span style="white-space:nowrap">語法問題（邏輯與錯誤）</span></td><td style="text-align:center">變數未定義、引入了沒用的模組、代碼太複雜</td><td style="text-align:center">在 IDE 中以黃、紅線標註，並提供修復建議</td></tr><tr><td style="text-align:center">Formatter</td><td style="text-align:center"><span style="white-space:nowrap">語義問題（視覺與格式）</span></td><td style="text-align:center">縮排空格數、單雙引號、換行位置</td><td style="text-align:center">存檔時直接自動修正，確保全專案風格統一</td></tr></tbody></table></div><h3 id="Ruff"><a href="#Ruff" class="headerlink" title="Ruff"></a>Ruff</h3><p>這是一款工具，結合了 Linter 和 Formatter 的功能於一體，雖然它也可以用 CLI 來控制，但更方便的功能則是在 VS Code 按下 <kbd>Ctrl</kbd> <kbd>S</kbd> 存檔時會自動 format，並且用黃或紅色底線來標記一些可能存在的語法問題。</p><p>程式碼的風格其實最重要的就是<strong>統一</strong>，因此其實 Formatter 也不一定會完全按 PEP 8 的規範來走，有些反而選擇以 Python 社區的習慣來走。</p><p>舉個例子，以 PEP 8 的規範來說，數學運算應該只把空格加在<strong>最後進行運算的符號</strong>前後，像是 <code>a*b+c*d</code> 因為先乘除後加減，加號是最後運算的，故應寫為 <code>a*b + c*d</code>。但如果你實際去跑一次 Ruff，你會發現它給你整理成了 <code>a + b * c + d</code>，而這其實是 Python 社區目前比較盛行和鼓勵的寫法。</p><h2 id="安裝-VS-Code-套件"><a href="#安裝-VS-Code-套件" class="headerlink" title="安裝 VS Code 套件"></a>安裝 VS Code 套件</h2><p>在 VS Code 中按下 <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>X</kbd>，並安裝（或檢查是否安裝）以下擴充套件（Extension）：</p><ul><li>Python：<del>寫 Python 不裝這個，你就是這個 👍</del></li><li>Pylance：通常裝 Python 的 VS Code 套件時就會一起安裝了，它會用來做基礎的程式碼補全和靜態檢查</li><li>Ruff：我們今天的主角，一款 Linter + Formatter 工具</li></ul><h2 id="設定-Ruff"><a href="#設定-Ruff" class="headerlink" title="設定 Ruff"></a>設定 Ruff</h2><ol><li>在 VS Code 中，按下 <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>P</kbd>，並輸入（或找到）<code>Preferences: Open User Settings (JSON)</code></li><li><p>找到 <code>&quot;[python]&quot;</code>，並加上（或替換）成以下 JSON 內容：</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-string">&quot;[python]&quot;</span>: &#123;<br>  <span class="hljs-attr">&quot;editor.defaultFormatter&quot;</span>: <span class="hljs-string">&quot;charliermarsh.ruff&quot;</span>,<br>  <span class="hljs-attr">&quot;editor.formatOnSave&quot;</span>: <span class="hljs-literal">true</span>,<br>  <span class="hljs-attr">&quot;editor.codeActionsOnSave&quot;</span>: &#123;<br>    <span class="hljs-attr">&quot;source.fixAll.ruff&quot;</span>: <span class="hljs-string">&quot;explicit&quot;</span>,<br>    <span class="hljs-attr">&quot;source.organizeImports.ruff&quot;</span>: <span class="hljs-string">&quot;explicit&quot;</span><br>  &#125;<br>&#125;,<br></code></pre></td></tr></table></figure><p>（若整個 JSON 檔是空的，記得在首和尾行加上 <code>&#123;</code> 和 <code>&#125;</code>，並依 IDE 指示刪掉多餘 <code>,</code>）</p></li><li><p>在想要自動執行 Ruff 的地方創建 <code>pyproject.toml</code>，並貼上以下內容：</p><figure class="highlight toml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><code class="hljs toml"><span class="hljs-section">[tool.ruff]</span><br><span class="hljs-attr">line-length</span> = <span class="hljs-number">88</span> <span class="hljs-comment"># 一行最多 88 個字</span><br><span class="hljs-attr">target-version</span> = <span class="hljs-string">&quot;py310&quot;</span> <span class="hljs-comment"># 改掉較舊語法，以新語法取代（可換成專案用的 Python 版本）</span><br><br><span class="hljs-section">[tool.ruff.lint]</span><br><span class="hljs-attr">select</span> = [<span class="hljs-string">&quot;E&quot;</span>, <span class="hljs-string">&quot;F&quot;</span>, <span class="hljs-string">&quot;I&quot;</span>, <span class="hljs-string">&quot;W&quot;</span>, <span class="hljs-string">&quot;N&quot;</span>, <span class="hljs-string">&quot;UP&quot;</span>, <span class="hljs-string">&quot;FLY&quot;</span>, <span class="hljs-string">&quot;B&quot;</span>, <span class="hljs-string">&quot;RUF&quot;</span>, <span class="hljs-string">&quot;SIM&quot;</span>, <span class="hljs-string">&quot;PIE&quot;</span>, <span class="hljs-string">&quot;ARG&quot;</span>] <span class="hljs-comment"># 啟用的規則</span><br><span class="hljs-attr">ignore</span> = [<span class="hljs-string">&quot;E501&quot;</span>, <span class="hljs-string">&quot;T201&quot;</span>, <span class="hljs-string">&quot;D100&quot;</span>, <span class="hljs-string">&quot;RUF001&quot;</span>, <span class="hljs-string">&quot;RUF002&quot;</span>, <span class="hljs-string">&quot;RUF003&quot;</span>] <span class="hljs-comment"># 禁用的規則</span><br><br><span class="hljs-attr">fixable</span> = [<span class="hljs-string">&quot;ALL&quot;</span>] <span class="hljs-comment"># 啟用自動修正（推薦全開，Ruff 預設可修已經很保守了）</span><br><span class="hljs-attr">unfixable</span> = [] <span class="hljs-comment"># 禁用自動修正（可以上面設全開後，這裡再加入想要忽略的自動修正設定）</span><br><span class="hljs-attr">extend-safe-fixes</span> = [<span class="hljs-string">&quot;UP006&quot;</span>, <span class="hljs-string">&quot;UP007&quot;</span>] <span class="hljs-comment"># 額外允許一些 Ruff 預設比較保守的修正</span><br><br><span class="hljs-section">[tool.ruff.format]</span><br><span class="hljs-attr">quote-style</span> = <span class="hljs-string">&quot;single&quot;</span> <span class="hljs-comment"># 慣用引號（單引號）</span><br><span class="hljs-attr">docstring-code-format</span> = <span class="hljs-literal">true</span> <span class="hljs-comment"># docstring 一樣改用回雙引號</span><br><span class="hljs-attr">skip-magic-trailing-comma</span> = <span class="hljs-literal">true</span> <span class="hljs-comment"># 關掉「魔法尾逗號」的強制換行行為</span><br><br><span class="hljs-section">[tool.ruff.lint.isort]</span><br><span class="hljs-attr">combine-as-imports</span> = <span class="hljs-literal">true</span> <span class="hljs-comment"># 合併 `import x as y` 類型的 import（讓同一模組的別名 import 更集中）</span><br><span class="hljs-attr">lines-after-imports</span> = <span class="hljs-number">2</span> <span class="hljs-comment"># import 區塊後保留 2 行空白（更明顯分隔 import 與程式本文）</span><br><br><span class="hljs-section">[tool.ruff.lint.mccabe]</span><br><span class="hljs-attr">max-complexity</span> = <span class="hljs-number">10</span> <span class="hljs-comment"># 圈複雜度上限：超過 10 會被標記（提醒拆函式/簡化分支）</span><br></code></pre></td></tr></table></figure></li><li><p>客制化自己的 <code>pyproject.toml</code>：你可以依不同專案和不同個人（或團隊）習慣，在每個專案用不同的 <code>pyproject.toml</code>，你可以依照上面我寫的註解來改，以及參考 AI 或<a href="https://docs.astral.sh/ruff/">官方文件</a>來客制化</p><p>用 AI 者，可以參考這個 prompt：</p><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs text">我在 VSC 中想使用 Ruff，我已經設定好了 JSON 檔（不用再改），並且用了別人的範例 pyproject.toml，如下：<br><br>（請貼上先前提供的 pyproject.toml 並替換掉這行文字）<br><br>我希望我可以依自己的喜好和專案狀況來修改成我自己的版本，因為我是新手，請你透過向我提問的方式和我確認程式碼風格喜好和專案目前情況，並且每個設定都大概說明一下會影響到什麼，以及 PEP 8 和社區習慣。客制化設定時，不要只依上面那個 TOML 來改，而是同時改到上面的設定，以及確認有沒有什麼其他設定我也用得上，但上面沒特別寫到的。<br><br>另外，我不使用 CLI，而是只用 VSC 的 Ruff Extension 配合存檔操作來自動執行 Ruff。<br></code></pre></td></tr></table></figure></li></ol><h2 id="撰寫程式碼時"><a href="#撰寫程式碼時" class="headerlink" title="撰寫程式碼時"></a>撰寫程式碼時</h2><ol><li>在 VS Code 中，寫完程式碼後，按下存檔（<kbd>Ctrl</kbd> <kbd>S</kbd>）時，程式將會自動 format（有開啟自動存檔者也不用擔心，手動按存檔才會執行 format）</li><li><p>撰寫過程，IDE 也會自動在不符合規範的程式碼下以黃或紅色底線標記，將滑鼠移到它上面時，還會顯示詳細提示錯誤或不符合 Linter 規範的說明，也可以按下 <code>快速修復</code> 來看看有沒有內建的解決方法</p><div class="note note-info">            <p>若解決方法只是加上一個註解，說明問題沒有被解決，它只是可以讓 IDE 不再警報<br>你可以依自己的想法來決定倒底是要依建議修復問題，或者留著忽略警告的註解</p>           </div></li></ol><h2 id="Pre-commit"><a href="#Pre-commit" class="headerlink" title="Pre-commit"></a>Pre-commit</h2><p>它其實並不是 Ruff 專屬的，任何 Linter 或 Formatter 都可以用這東西。它會在使用者 commit 程式碼時，自動跑一次 Linter 或 Formatter，並檢查是否有任何錯誤（不符合設定處）。</p><h3 id="安裝"><a href="#安裝" class="headerlink" title="安裝"></a>安裝</h3><ol><li><p>在終端機（Terminal）中使用 <code>pip</code> 指令（或其他 Python 套件安裝工具）安裝 pre-commit：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">pip install pre-commit<br></code></pre></td></tr></table></figure></li><li><p>在與 <code>pyproject.toml</code> 同層級目錄下創建 <code>.pre-commit-config.yaml</code>，並貼上以下內容：</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><code class="hljs yaml"><span class="hljs-attr">repos:</span><br><span class="hljs-bullet">-</span> <span class="hljs-attr">repo:</span> <span class="hljs-string">https://github.com/pre-commit/pre-commit-hooks</span><br>  <span class="hljs-attr">rev:</span> <span class="hljs-string">v4.5.0</span><br>  <span class="hljs-attr">hooks:</span><br>    <span class="hljs-bullet">-</span> <span class="hljs-attr">id:</span> <span class="hljs-string">trailing-whitespace</span><br>    <span class="hljs-bullet">-</span> <span class="hljs-attr">id:</span> <span class="hljs-string">end-of-file-fixer</span><br>    <span class="hljs-bullet">-</span> <span class="hljs-attr">id:</span> <span class="hljs-string">check-yaml</span><br>    <span class="hljs-bullet">-</span> <span class="hljs-attr">id:</span> <span class="hljs-string">check-added-large-files</span><br><br><span class="hljs-bullet">-</span> <span class="hljs-attr">repo:</span> <span class="hljs-string">https://github.com/astral-sh/ruff-pre-commit</span><br>  <span class="hljs-attr">rev:</span> <span class="hljs-string">v0.1.9</span><br>  <span class="hljs-attr">hooks:</span><br>    <span class="hljs-bullet">-</span> <span class="hljs-attr">id:</span> <span class="hljs-string">ruff</span><br>      <span class="hljs-attr">args:</span> [ <span class="hljs-string">--fix</span> ]<br>    <span class="hljs-bullet">-</span> <span class="hljs-attr">id:</span> <span class="hljs-string">ruff-format</span><br></code></pre></td></tr></table></figure></li><li><p>在同目錄的終端機（Terminal）中，輸入：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">pre-commit install<br></code></pre></td></tr></table></figure></li><li><p>試著 commit：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs bash">git add .<br>git commit -m <span class="hljs-string">&quot;隨便打一個 commit message&quot;</span><br></code></pre></td></tr></table></figure><div class="note note-info">            <p>若有其中一個（或多個檔案）顯示 <code>Failed</code>，表示 pre-commit 啟作用並自動幫你修復了，不用修改任何東西，再去執行一次上方 <code>add</code> 和 <code>commit</code> 即可；若全都是 <code>Passed</code> 或 <code>Skipped</code>，表示無檔案需要修復</p>           </div></li><li><p>將改動推上 GitHub</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">git push<br></code></pre></td></tr></table></figure></li></ol><div class="note note-info">            <p>若在 <code>git add .</code> 時看到提示訊息中有提及「CRLF」或「LF」<br>是因為你使用 Windows 系統使用 CRLF（<code>\r\n</code>）作換行符；而 Linux/macOS 用 LF（<code>\n</code>）<br>通常情況下，Git 或 Ruff 會自動處理此問題，可忽略<br>但若你想讓自己專案更完整和健壯，也可以問問 AI 如何處理它們的轉換問題</p>           </div><h3 id="程式專案"><a href="#程式專案" class="headerlink" title="程式專案"></a>程式專案</h3><ol><li>為了讓大家都能依同一套 Linter 和 Formatter 規則來寫程式，可以將 <code>pre-commit</code> 加到 <code>requirements.txt</code> 中，並在 <code>README.md</code> 中提及它</li><li>有裝好 <code>pre-commit</code> 的環境，會自動讀取專案中的 <code>pyproject.toml</code>，且在每次 commit 時自動檢查和修正風格，就如上<a href="#安裝">安裝</a>章節的第 <code>3.</code> 、 <code>4.</code> 點所述</li></ol>]]>
    </content>
    <id>https://chuen666666.com/%E4%BD%BF%E7%94%A8Ruff%E8%AE%93%E4%BD%A0%E7%9A%84Python%E7%A8%8B%E5%BC%8F%E7%A2%BC%E8%AE%8A%E5%BE%97%E8%A6%8F%E7%AF%84%E5%8F%88%E6%95%B4%E9%BD%8A%EF%BC%81/</id>
    <link href="https://chuen666666.com/%E4%BD%BF%E7%94%A8Ruff%E8%AE%93%E4%BD%A0%E7%9A%84Python%E7%A8%8B%E5%BC%8F%E7%A2%BC%E8%AE%8A%E5%BE%97%E8%A6%8F%E7%AF%84%E5%8F%88%E6%95%B4%E9%BD%8A%EF%BC%81/"/>
    <published>2026-01-16T00:45:23.000Z</published>
    <summary>Ruff 是一個超好用的 Linter + Formatter，讓你的程式碼可以整齊又規範</summary>
    <title>使用 Ruff 讓你的 Python 程式碼變得規範又整齊！</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="程式" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/"/>
    <category term="競程" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/%E7%AB%B6%E7%A8%8B/"/>
    <category term="筆記" scheme="https://chuen666666.com/tags/%E7%AD%86%E8%A8%98/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="競程" scheme="https://chuen666666.com/tags/%E7%AB%B6%E7%A8%8B/"/>
    <category term="Python" scheme="https://chuen666666.com/tags/Python/"/>
    <category term="標準函式庫" scheme="https://chuen666666.com/tags/%E6%A8%99%E6%BA%96%E5%87%BD%E5%BC%8F%E5%BA%AB/"/>
    <content>
      <![CDATA[<h2 id="sys-系統控制"><a href="#sys-系統控制" class="headerlink" title="sys - 系統控制"></a>sys - 系統控制</h2><blockquote><p><a href="https://docs.python.org/zh-tw/3.14/library/sys.html">官網連結</a></p></blockquote><ul><li><code>stdin.readline()</code>：高速輸入（取代 <code>input()</code>，記得 <code>.rstrip()</code> 去除換行）</li><li><code>stdin.read()</code>：一次讀完整輸入（超大量輸入時）</li><li><code>stdout.write()</code>：高速輸出（取代 <code>print()</code>）</li><li><code>setrecursionlimit(n)</code>：調高遞迴深度上限（深度 $n$）</li></ul><h2 id="math-數學工具"><a href="#math-數學工具" class="headerlink" title="math - 數學工具"></a>math - 數學工具</h2><blockquote><p><a href="https://docs.python.org/zh-tw/3/library/math.html">官網連結</a></p></blockquote><ul><li><code>gcd(a, b)</code>：最大公因數</li><li><code>lcm(a, b)</code>：最小公倍數</li><li><code>factorial(n)</code>：階乘（$n!$）</li><li><code>isqrt(n)</code>：平方根取整</li><li><code>comb(n, k)</code>：組合數（$C_k^n$ ／ $\binom{n}{k}$）</li><li><code>perm(n, k)</code>：排列數（$P_k^n$）</li><li><code>prod(iterable)</code>：序列連乘積（把 iterable 內所有東西相乘的積）</li><li><code>ceil(x)</code>：向上取整（$\lceil x \rceil$）</li><li><code>floor(x)</code>：向下取整（$\lfloor x \rfloor$）</li><li><code>dist(p, q)</code>：計算歐幾里德距離（點座標可以 tuple 表示，接受多維）</li><li><code>hypot(a1, a2, ...)</code>：計算 $\sqrt{a_1^2+a_2^2+\cdots}$</li><li><code>log(x)</code>、<code>log2(x)</code>、<code>log10(x)</code>、<code>log1p(x)</code>：計算對數，依序表示 $\ln x$、$\log_2 x$、$\log x$、$\ln(1+x)$（浮點數較精確）</li></ul><h2 id="string-字串工具"><a href="#string-字串工具" class="headerlink" title="string - 字串工具"></a>string - 字串工具</h2><blockquote><p><a href="https://docs.python.org/zh-tw/3.14/library/string.html">官網連結</a></p></blockquote><ul><li><code>ascii_lowercase</code>：a~z</li><li><code>ascii_uppercase</code>：A~Z</li><li><code>ascii_letters</code>：a~z + A~Z</li><li><code>digits</code>：0~9</li><li><code>whitespace</code>：包含空格（space）、製表符號（tab）、換行符號（linefeed）、return、換頁符號（formfeed）和垂直製表符號（vertical tab）這些字元（<code>&#39; \t\n\r\x0b\x0c&#39;</code>）</li></ul><h2 id="itertools-疊代工具"><a href="#itertools-疊代工具" class="headerlink" title="itertools - 疊代工具"></a>itertools - 疊代工具</h2><blockquote><p><a href="https://docs.python.org/zh-tw/3.14/library/itertools.html">官網連結</a></p></blockquote><ul><li><code>permutations(iterable, r)</code>：排列（<code>r</code> 為選填）</li><li><code>combinations(iterable, r)</code>：組合（<code>r</code> 為選填）<ul><li><code>combinations_with_replacement(iterable, r)</code> 用法相同，但接受重複</li></ul></li><li><code>product(iterable, repeat)</code>：笛卡兒積（<code>repeat</code> 為選填，只能用 keyword argument）</li><li><code>accumulate(iterable, func)</code>：前綴和（<code>func</code> 為選填，只能用 keyword argument，可用 <code>func=math.prod</code> 來改為前綴積）</li><li><code>cycle(iterable)</code>：無限循環疊代</li><li><code>chain(iterable1, iterable2, iterable3)</code>：將多個 iterable 串在一起</li><li><code>groupby(iterable)</code>：分組（須先排序）</li><li><code>islice(iterable, start, stop, step)</code>：切 iterable（不用轉 list）</li><li><code>repeat(x, n)</code>：重複值（初始化用）</li><li><code>count(start=0, step=1)</code>：無限遞增計數器</li><li><code>pairwise(iterable)</code>：相鄰元素配對（Python 3.10+）</li></ul><h2 id="functools-函式優化工具"><a href="#functools-函式優化工具" class="headerlink" title="functools - 函式優化工具"></a>functools - 函式優化工具</h2><blockquote><p><a href="https://docs.python.org/zh-tw/3/library/functools.html">官網連結</a></p></blockquote><ul><li><code>lru_cache(maxsize=None)</code>：記憶化遞迴（DP 常用）</li><li><code>cmp_to_key(func)</code>：自訂比較函式，轉為 <code>sort()</code> 可用的 key</li></ul><h2 id="collections-資料結構"><a href="#collections-資料結構" class="headerlink" title="collections - 資料結構"></a>collections - 資料結構</h2><blockquote><p><a href="https://docs.python.org/zh-tw/3/library/collections.html">官網連結</a></p></blockquote><ul><li><code>deque(iterable)</code>：雙端佇列（類似取頭尾值效率較高的 list，可用 <code>pop()</code>、<code>append()</code>、<code>popleft()</code>、<code>appendleft()</code> 取、放值進佇列）</li><li><code>Counter(iterable)</code>：計每個 element 出現的次數（操作方式同 dict）<ul><li><code>most_common(k)</code>：前 k 多</li><li><code>c &amp; d</code>：交集（取最小次數）</li><li><code>c | d</code>：聯集（取最大次數）</li></ul></li><li><code>defaultdict(type)</code>：自動初始化字典</li><li><code>namedtuple</code>：輕量資料結構（比 class 簡潔）</li></ul><h2 id="heapq-最小堆（優先隊列）"><a href="#heapq-最小堆（優先隊列）" class="headerlink" title="heapq - 最小堆（優先隊列）"></a>heapq - 最小堆（優先隊列）</h2><blockquote><p><a href="https://docs.python.org/zh-tw/3/library/heapq.html">官網連結</a></p></blockquote><ul><li><code>heapify(list)</code>：將 list 轉為最小堆</li><li><code>heappush(heap, x)</code>：將 $x$ 插入最小堆</li><li><code>heappop(heap)</code>：將最小值從最小堆中取出</li><li><code>heapq.nlargest(n, iterable, key)</code>：從 iterable 中找出最大的 $n$ 個元素（<code>key</code> 為選填，只能用 keyword argument 指定排序方式）</li><li><code>heapq.nsmallest(n, iterable, key)</code>：從 iterable 中找出最小的 $n$ 個元素（<code>key</code> 為選填，只能用 keyword argument 指定排序方式）</li><li><code>heapreplace(heap, x)</code>：取出最小值並放入新值 $x$（等價於 <code>heappop()</code> + <code>heappush()</code> 但更快，用於<strong>固定 heap 大小</strong>）</li><li><code>heappushpop(heap, x)</code>：嘗試將 $x$ 放入 heap，並回傳被擠出的值（等價於 <code>heappush()</code> + <code>heappop()</code> 但更快，用於<strong>維持前 $k$ 名</strong>）</li></ul><div class="note note-info">            <p>若想要做出最大堆，只要將原 list 每個值取負，轉成 heap 後，取值時再取一次負即可<br><code>(priority, value)</code> tuple：利用 tuple[0] 來作為優先數值</p>           </div><h2 id="bisect-二分搜"><a href="#bisect-二分搜" class="headerlink" title="bisect - 二分搜"></a>bisect - 二分搜</h2><blockquote><p><a href="https://docs.python.org/zh-tw/3.13/library/bisect.html">官網連結</a></p></blockquote><ul><li><code>bisect_left(list, x)</code>：回傳 $x$ 插入 list 的位置（從左開始找）</li><li><code>bisect_right(list, x)</code>：回傳 $x$ 插入 list 的位置（從右開始找）</li><li><code>insort(list, x)</code>：插入 $x$ 並保持有序</li><li><code>insort_left(list, x)</code>：從左插入 $x$ 至已排序 list</li><li><code>insort_right(list, x)</code>：從右插入 $x$ 至已排序 list</li></ul><div class="note note-warning">            <p>二分搜傳入的所有 list 必須已經經過排序</p>           </div>]]>
    </content>
    <id>https://chuen666666.com/%E7%AB%B6%E7%A8%8B%E5%B8%B8%E7%94%A8%E7%9A%84Python%E6%A8%99%E6%BA%96%E5%87%BD%E5%BC%8F%E5%BA%AB/</id>
    <link href="https://chuen666666.com/%E7%AB%B6%E7%A8%8B%E5%B8%B8%E7%94%A8%E7%9A%84Python%E6%A8%99%E6%BA%96%E5%87%BD%E5%BC%8F%E5%BA%AB/"/>
    <published>2026-01-13T08:12:44.000Z</published>
    <summary>整理競程或程式測驗常會用到的 Python 標準函式庫</summary>
    <title>競程常用的 Python 標準函式庫</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="程式" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/"/>
    <category term="專案" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/%E5%B0%88%E6%A1%88/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="教學" scheme="https://chuen666666.com/tags/%E6%95%99%E5%AD%B8/"/>
    <category term="個人網站" scheme="https://chuen666666.com/tags/%E5%80%8B%E4%BA%BA%E7%B6%B2%E7%AB%99/"/>
    <content>
      <![CDATA[<p>因為最近不少人來問我怎麼架站，因此我想根據我架站的經驗來寫一篇教學。這些東西都是依我架站時的經驗和 AI 幫忙一起寫的，有些東西有機會不小心漏掉或者因為不同東西的版本而有所差異，因此若有任何錯誤、遺漏或任何問題，可至下方留言或私訊我，我也會隨時更新網站。</p><p>這篇文章內容會很多，可以使用左側的導覽列來快速到達想看的主題。</p><h2 id="概念講解"><a href="#概念講解" class="headerlink" title="概念講解"></a>概念講解</h2><p>此章用以給零基礎的新手快速了解各專有名詞之用，若已了解這些東西<del>或不想聽這些廢話</del>，此章可跳過。</p><div class="note note-info">            <p>本文之內容，若有提及 Linux 者，皆以 Ubuntu 為主</p>           </div><h3 id="HTML-CSS-JS"><a href="#HTML-CSS-JS" class="headerlink" title="HTML/CSS/JS"></a>HTML/CSS/JS</h3><p>這是一般網頁（前端）構成的三大要素，以一顆按鈕的例子來說：HTML 負責定義<strong>這個按鈕的出現以及位置</strong>、CSS 負責控制<strong>這個按鈕要長怎樣</strong>、JavaScript (JS) 則控制<strong>這個按鈕按下去會發生什麼</strong>（功能）。</p><h3 id="Markdown-MD"><a href="#Markdown-MD" class="headerlink" title="Markdown (MD)"></a>Markdown (MD)</h3><p>我目前為止學過最簡單的標記語言，它可以用相當簡單和直觀的方式來寫出好看的文章，且遠比 LaTeX 和 HTML 好學，<del>連 <a href="https://yilinguo121.github.io/">@郭10</a> 都學得會，問題應該是不大</del>。</p><h3 id="LaTeX"><a href="#LaTeX" class="headerlink" title="LaTeX"></a>LaTeX</h3><p>另一種標記語言，上手相當難，但排板非常規範，<del>根本論文人惡夢</del>。</p><p>它的專長是用來寫數學、物理、化學的各種符號或公式。</p><p>當然，我們這裡不會用到整篇的那種 LaTeX，只會在用要寫數學公式時用到一點點，其他的排板部分就交給 MD 吧。</p><h3 id="YAML"><a href="#YAML" class="headerlink" title="YAML"></a>YAML</h3><p>一種文件，副檔名為 <code>.yaml</code> 或 <code>.yml</code>，在架站時，它主要是用來作為各種設定檔的檔案。要注意的是，這種檔案對於空格極為敏感，故從其他地方複製時請小心。</p><h3 id="IDE"><a href="#IDE" class="headerlink" title="IDE"></a>IDE</h3><p>中文叫「整合開發環境」，<del>我沒聽過任何一個資工人會稱它的中文就是了</del>。例如我們在寫一個 Python 程式，其實我們只需要有 Python 環境，建一個以 <code>.py</code> 為副檔名的檔案，再直接用記事本來寫，理論上也是可行的，但相信我，沒有人會這麼做的，<span class="spoiler" onclick="this.classList.add('open')">除了我第一次去參加 APCS 時不知道他們電腦裡有 IDE 以外</span>，用記事本可以寫到你懷疑人生。</p><p>那為了方便開發者寫程式，就有了 IDE 的出現，它除了會有各種語法高亮、靜態錯誤提示（即程式執行前先預測並標記出可能報錯的地方的功能）、一鍵編譯程式、各種好用的 GUI（圖形介面）以外，現在甚至有一些整合了 LLM（大語言模型）。目前最紅的 IDE 就是由微軟推出的 Visual Studio Code（VS Code、VSC），<del>微軟為數不多獲得高度好評的軟體</del>。</p><h3 id="Git-GitHub"><a href="#Git-GitHub" class="headerlink" title="Git/GitHub"></a>Git/GitHub</h3><p>其實 Git 和 GitHub 是兩個完全不同的東西，GitHub 只不過是其中一個用 Git 架構開發的程式碼放置與公開網站，其他還有如 GitLab、Bitbucket 等，不過這裡會以 GitHub 為主來講解。</p><ul><li>Git：專門用來做版本控制的好用工具，我們可以用它來建立倉庫（Repository、Repo），並方便地在不同版本間切換，讓回溯版本變得簡單</li><li>GitHub：一個遠端數據庫，可以用來放自己的程式碼上去，它是我們的這次架站的主角之一</li></ul><h3 id="GitHub-Pages"><a href="#GitHub-Pages" class="headerlink" title="GitHub Pages"></a>GitHub Pages</h3><p>GitHub 的功能之一，用託管自己的靜態網站（也就是不會用到資料庫和後端的網站）上去，並產生一個免費的公開網址。需要特別注意，Pages 架個網時，需把 Repo 名稱設為 <code>username.github.io</code>（<code>username</code> 換成 GitHub 帳號名）。</p><h3 id="GitHub-Actions-CI-CD"><a href="#GitHub-Actions-CI-CD" class="headerlink" title="GitHub Actions (CI/CD)"></a>GitHub Actions (CI/CD)</h3><p>簡單來說，CI/CD 就是自動化檢查與部署，而 Actions 是 GitHub 完成這個工作的工具。以這次的架站任務來說，它可以用來幫你把推上 GitHub 的 MD 原碼自動透過 Hexo 線上編譯成 HTML，再自動部署成新網站。</p><h3 id="Hexo"><a href="#Hexo" class="headerlink" title="Hexo"></a>Hexo</h3><p>它是一個利用 Node.js 開發的架網站框架，在這個架構下，你可以用 Markdown 來寫文章，再透過它把它編譯（可以想像成是翻譯）成 HTML。</p><p>Hexo 框架也有許多現存的模板可以直接套，對於不會寫 CSS <del>或沒什麼美感</del>的人而言，它是一個快速建立好看網站的好用工具。</p><h2 id="準備環境"><a href="#準備環境" class="headerlink" title="準備環境"></a>準備環境</h2><h3 id="Git"><a href="#Git" class="headerlink" title="Git"></a>Git</h3><ol><li><p>使用 Windows 和 macOS 者，可以到<a href="https://git-scm.com/">官網</a>用 GUI 安裝，就和安裝其他軟體流程差不多；用 Linux 者，可以使用以下指令安裝：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs bash">sudo apt update<br>sudo apt install git<br></code></pre></td></tr></table></figure></li><li><p>下載完 Git 後，可以打開 Terminal，並輸入：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs bash">git config --global user.name <span class="hljs-string">&quot;你的 GitHub username&quot;</span><br>git config --global user.email <span class="hljs-string">&quot;你的 Email&quot;</span><br></code></pre></td></tr></table></figure></li></ol><h3 id="Node-js"><a href="#Node-js" class="headerlink" title="Node.js"></a>Node.js</h3><p>用 Windows 和 macOS 者，可以到<a href="https://nodejs.org/zh-tw">官網</a>用 GUI 安裝；用 Linux 者，可使用以下指令安裝：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs bash">curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -<br>sudo apt install -y nodejs<br></code></pre></td></tr></table></figure><h3 id="GitHub"><a href="#GitHub" class="headerlink" title="GitHub"></a>GitHub</h3><p>去到 GitHub，創建一個新 Repo，並將名稱設為 <code>username.github.io</code>（<code>username</code> 換成自己 GitHub 的帳號名），記得將 <code>Visibility</code> 設為 <code>Public</code>，因為只有付費帳號才享有 <code>Private</code> 的 Pages 功能（免費帳號設為 <code>Private</code> 的話，Pages 託管的網站會直接 <em>404 NOT FOUND</em>）。</p><h3 id="Hexo-1"><a href="#Hexo-1" class="headerlink" title="Hexo"></a>Hexo</h3><p>此步請在完成 Node.js 安裝後才能執行。</p><ol><li>安裝 Hexo 主程式</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">npm install -g hexo-cli<br></code></pre></td></tr></table></figure><ol><li>建立部落格資料夾（放原檔內容）</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs bash">hexo init my-blog<br><span class="hljs-built_in">cd</span> my-blog<br>npm install <span class="hljs-comment"># 若無法執行，可改用管理員權限的 Terminal</span><br></code></pre></td></tr></table></figure><ol><li>預覽測試</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">hexo s<br></code></pre></td></tr></table></figure><ol><li><p>在瀏覽器中打開 <code>http://localhost:4000</code>，你應該會看到一個預設的網站，並且出現一篇名為「Hello World」的文章，代表前面的安裝步驟都沒問題，確認完後即可關閉瀏覽器視窗；若網站無法正常顯示，表示先前安裝有問題，<del>那就只好自求多福啦</del>，你可以檢查：</p><ol><li>GitHub Repo 是否為公開（<code>Public</code>）</li><li>Hexo 和套件（<code>npm install</code> 指令裝的東西）是否安裝在網站（<code>my-blog</code>）同目錄</li><li><code>_config.yml</code> 中的 <code>url</code> 有沒有填錯</li><li>問問看 AI 並一步步排查錯誤</li></ol></li></ol><h2 id="部署到-GitHub-Pages"><a href="#部署到-GitHub-Pages" class="headerlink" title="部署到 GitHub Pages"></a>部署到 GitHub Pages</h2><ol><li><p>在根目錄（<code>my-blog</code>）下創建一個檔案 <code>.gitignore</code>（若有則免創），並貼上以下內容：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs gitignore">.DS_Store<br>Thumbs.db<br>db.json<br>*.log<br>node_modules/<br>public/<br>.deploy*/<br>_multiconfig.yml<br></code></pre></td></tr></table></figure></li><li><p>下載部署的插件 <code>hexo-deployer-git</code>：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">npm install hexo-deployer-git --save<br></code></pre></td></tr></table></figure></li><li><p>去 Hexo 的 <a href="https://hexo.io/themes/">Themes</a> 頁面，找一個自己喜歡的網站模板（主題），點進去後，依下圖複製其網址，再用指令 clone 到自己電腦中</p><img src="/img/fluid_github.png" class=""><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">git submodule add &lt;貼上剛 GitHub 複製的東西&gt;<br></code></pre></td></tr></table></figure><div class="note note-info">            <p>未來若在其他電腦 clone 自己個網的 Repo，記得執行 <code>git submodule update --init --recursive</code> 才能抓回主題檔案</p>           </div><div class="note note-warning">            <p>請注意，雖然整體 Hexo 架構是用 MD 寫文章，但許多不同模板仍可能會加入額外（不屬於標準 MD）的語法，因此請謹慎選擇主題，否則日後若要換主題，那些主題獨有語法會失效，更改的時間成本會隨文章數日漸變多而變高</p>           </div><div class="note note-light">            <p>因為會有部分語法不被原生 MD 支援，故 IDE 的 MD 預覽也可能與最終效果不合</p>           </div></li><li><p>打開 <code>/my-blog/_config.yml</code> 文件，你可以先將文件取代成以下這一份，再依以下文件內的指示（所有中文字的部分，分別為第 6, 7, 8, 9, 10, 16, 108 行）填入自己的資訊：</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br></pre></td><td class="code"><pre><code class="hljs yml"><span class="hljs-comment"># Hexo Configuration</span><br><span class="hljs-comment">## Docs: https://hexo.io/docs/configuration.html</span><br><span class="hljs-comment">## Source: https://github.com/hexojs/hexo/</span><br><br><span class="hljs-comment"># Site</span><br><span class="hljs-attr">title:</span> <span class="hljs-string">&quot;網站標題&quot;</span><br><span class="hljs-attr">subtitle:</span> <span class="hljs-string">&quot;網站副標題&quot;</span><br><span class="hljs-attr">description:</span> <span class="hljs-string">&quot;網站簡介&quot;</span><br><span class="hljs-attr">keywords:</span> <span class="hljs-string">關鍵字1,</span> <span class="hljs-string">關鍵字2,</span> <span class="hljs-string">...</span><br><span class="hljs-attr">author:</span> <span class="hljs-string">&quot;你的名字&quot;</span><br><span class="hljs-attr">language:</span> <span class="hljs-string">zh-TW</span><br><span class="hljs-attr">timezone:</span> <span class="hljs-string">Asia/Taipei</span><br><br><span class="hljs-comment"># URL</span><br><span class="hljs-comment">## Set your site url here. For example, if you use GitHub Page, set url as &#x27;https://username.github.io/project&#x27;</span><br><span class="hljs-attr">url:</span> <span class="hljs-string">https://你的名字.github.io</span><br><span class="hljs-attr">root:</span> <span class="hljs-string">/</span><br><span class="hljs-attr">permalink:</span> <span class="hljs-string">:title/</span><br><span class="hljs-attr">permalink_defaults:</span><br><span class="hljs-attr">pretty_urls:</span><br>  <span class="hljs-attr">trailing_index:</span> <span class="hljs-literal">true</span> <span class="hljs-comment"># Set to false to remove trailing &#x27;index.html&#x27; from permalinks</span><br>  <span class="hljs-attr">trailing_html:</span> <span class="hljs-literal">true</span> <span class="hljs-comment"># Set to false to remove trailing &#x27;.html&#x27; from permalinks</span><br><br><span class="hljs-comment"># Directory</span><br><span class="hljs-attr">source_dir:</span> <span class="hljs-string">source</span><br><span class="hljs-attr">public_dir:</span> <span class="hljs-string">public</span><br><span class="hljs-attr">tag_dir:</span> <span class="hljs-string">tags</span><br><span class="hljs-attr">archive_dir:</span> <span class="hljs-string">archives</span><br><span class="hljs-attr">category_dir:</span> <span class="hljs-string">categories</span><br><span class="hljs-attr">code_dir:</span> <span class="hljs-string">downloads/code</span><br><span class="hljs-attr">i18n_dir:</span> <span class="hljs-string">:lang</span><br><span class="hljs-attr">skip_render:</span><br><br><span class="hljs-comment"># Writing</span><br><span class="hljs-attr">new_post_name:</span> <span class="hljs-string">:title.md</span> <span class="hljs-comment"># File name of new posts</span><br><span class="hljs-attr">default_layout:</span> <span class="hljs-string">post</span><br><span class="hljs-attr">titlecase:</span> <span class="hljs-literal">false</span> <span class="hljs-comment"># Transform title into titlecase</span><br><span class="hljs-attr">external_link:</span><br>  <span class="hljs-attr">enable:</span> <span class="hljs-literal">true</span> <span class="hljs-comment"># Open external links in new tab</span><br>  <span class="hljs-attr">field:</span> <span class="hljs-string">site</span> <span class="hljs-comment"># Apply to the whole site</span><br>  <span class="hljs-attr">exclude:</span> <span class="hljs-string">&#x27;&#x27;</span><br><span class="hljs-attr">filename_case:</span> <span class="hljs-number">0</span><br><span class="hljs-attr">render_drafts:</span> <span class="hljs-literal">false</span><br><span class="hljs-attr">post_asset_folder:</span> <span class="hljs-literal">false</span><br><span class="hljs-attr">relative_link:</span> <span class="hljs-literal">false</span><br><span class="hljs-attr">future:</span> <span class="hljs-literal">true</span><br><span class="hljs-attr">syntax_highlighter:</span> <span class="hljs-string">highlight.js</span><br><span class="hljs-attr">highlight:</span><br>  <span class="hljs-attr">enable:</span> <span class="hljs-literal">false</span><br>  <span class="hljs-attr">line_number:</span> <span class="hljs-literal">true</span><br>  <span class="hljs-attr">auto_detect:</span> <span class="hljs-literal">false</span><br>  <span class="hljs-attr">tab_replace:</span> <span class="hljs-string">&#x27;&#x27;</span><br>  <span class="hljs-attr">wrap:</span> <span class="hljs-literal">true</span><br>  <span class="hljs-attr">hljs:</span> <span class="hljs-literal">false</span><br><span class="hljs-attr">prismjs:</span><br>  <span class="hljs-attr">enable:</span> <span class="hljs-literal">false</span><br>  <span class="hljs-attr">preprocess:</span> <span class="hljs-literal">true</span><br>  <span class="hljs-attr">line_number:</span> <span class="hljs-literal">true</span><br>  <span class="hljs-attr">tab_replace:</span> <span class="hljs-string">&#x27;&#x27;</span><br><br><span class="hljs-comment"># Home page setting</span><br><span class="hljs-comment"># path: Root path for your blogs index page. (default = &#x27;&#x27;)</span><br><span class="hljs-comment"># per_page: Posts displayed per page. (0 = disable pagination)</span><br><span class="hljs-comment"># order_by: Posts order. (Order by date descending by default)</span><br><span class="hljs-attr">index_generator:</span><br>  <span class="hljs-attr">path:</span> <span class="hljs-string">&#x27;&#x27;</span><br>  <span class="hljs-attr">per_page:</span> <span class="hljs-number">10</span><br>  <span class="hljs-attr">order_by:</span> <span class="hljs-string">-date</span><br><br><span class="hljs-comment"># Category &amp; Tag</span><br><span class="hljs-attr">default_category:</span> <span class="hljs-string">未分類</span><br><span class="hljs-attr">category_map:</span><br><span class="hljs-attr">tag_map:</span><br><br><span class="hljs-comment"># Metadata elements</span><br><span class="hljs-comment">## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta</span><br><span class="hljs-attr">meta_generator:</span> <span class="hljs-literal">true</span><br><br><span class="hljs-comment"># Date / Time format</span><br><span class="hljs-comment">## Hexo uses Moment.js to parse and display date</span><br><span class="hljs-comment">## You can customize the date format as defined in</span><br><span class="hljs-comment">## http://momentjs.com/docs/#/displaying/format/</span><br><span class="hljs-attr">date_format:</span> <span class="hljs-string">YYYY-MM-DD</span><br><span class="hljs-attr">time_format:</span> <span class="hljs-string">HH:mm</span><br><span class="hljs-comment">## updated_option supports &#x27;mtime&#x27;, &#x27;date&#x27;, &#x27;empty&#x27;</span><br><span class="hljs-attr">updated_option:</span> <span class="hljs-string">mtime</span><br><br><span class="hljs-comment"># Pagination</span><br><span class="hljs-comment">## Set per_page to 0 to disable pagination</span><br><span class="hljs-attr">per_page:</span> <span class="hljs-number">10</span><br><span class="hljs-attr">pagination_dir:</span> <span class="hljs-string">page</span><br><br><span class="hljs-comment"># Include / Exclude file(s)</span><br><span class="hljs-comment">## include:/exclude: options only apply to the &#x27;source/&#x27; folder</span><br><span class="hljs-attr">include:</span><br><span class="hljs-attr">exclude:</span><br><span class="hljs-attr">ignore:</span><br><br><span class="hljs-comment"># Extensions</span><br><span class="hljs-comment">## Plugins: https://hexo.io/plugins/</span><br><span class="hljs-comment">## Themes: https://hexo.io/themes/</span><br><span class="hljs-attr">theme:</span> <span class="hljs-string">主題名稱</span><br><br><span class="hljs-comment"># Deployment</span><br><span class="hljs-comment">## Docs: https://hexo.io/docs/one-command-deployment</span><br><span class="hljs-attr">deploy:</span><br>  <span class="hljs-attr">type:</span> <span class="hljs-string">git</span><br>  <span class="hljs-attr">repo:</span> <span class="hljs-string">https://github.com/你的名字/你的名字.github.io.git</span><br>  <span class="hljs-attr">branch:</span> <span class="hljs-string">main</span><br></code></pre></td></tr></table></figure><div class="note note-warning">            <p>YAML 檔對空格相當敏感，<code>:</code> 的後面一定要加一個空格（除非沒東西）</p>           </div></li><li><p>根據不同主題，你可能需要去設定那個主題自己的 <code>_config.主題.yml</code> 或各頁 <code>index.md</code> 等，這部分會因各主題而有所不同，所以推薦直接用 AI（我推薦 Gemini，它架站效率比 ChatGPT 好很多），你可以用以下的 prompt，並依自己的需求更改：</p><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs text">我在使用 Hexo 架設網站，目前我進行到設定主題，我使用的主題是 &#123;主題名稱&#125;，我已經將它 clone 下來，也在 _config.yml 中設置好了，除此之外就沒做任何其他多餘的設定了。<br>請帶我一步步設定各個頁面（about, archives, tags, categories, links, etc.）的 index.md，包含 front-matter 和主題的 _config.yml（完整內容，你也可以叫我去某個網站先載範本後再教我改）。<br>過程中若有不同設定或偏好要向我確認，你可以先向我問清楚。<br></code></pre></td></tr></table></figure></li><li><p>到 GitHub 個網 Repo 中，<code>Settings</code> &rarr; <code>Actions</code> &rarr; <code>General</code> &rarr; <code>Workflow permissions</code> 將權限改為 <code>Read and write permissions</code></p></li><li><p>在根目錄（<code>my-blog</code>）下，創一個資料夾 <code>.github</code>（若已存在則免創），再在裡面創建另一個資料夾 <code>workflows</code>（若已存在則免創），最後再在裡面創建檔案 <code>deploy.yml</code> 並貼上以下內容：</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br></pre></td><td class="code"><pre><code class="hljs yml"><span class="hljs-attr">name:</span> <span class="hljs-string">Hexo</span> <span class="hljs-string">Deploy</span><br><br><span class="hljs-attr">on:</span><br>  <span class="hljs-attr">push:</span><br>    <span class="hljs-attr">branches:</span><br>      <span class="hljs-bullet">-</span> <span class="hljs-string">main</span><br><br><span class="hljs-attr">concurrency:</span><br>  <span class="hljs-attr">group:</span> <span class="hljs-string">hexo-deployment-$&#123;&#123;</span> <span class="hljs-string">github.head_ref</span> <span class="hljs-string">||</span> <span class="hljs-string">github.ref</span> <span class="hljs-string">&#125;&#125;</span><br>  <span class="hljs-attr">cancel-in-progress:</span> <span class="hljs-literal">true</span><br><br><span class="hljs-attr">permissions:</span><br>  <span class="hljs-attr">contents:</span> <span class="hljs-string">write</span><br><br><span class="hljs-attr">jobs:</span><br>  <span class="hljs-attr">build_and_deploy:</span><br>    <span class="hljs-attr">runs-on:</span> <span class="hljs-string">ubuntu-latest</span><br>    <span class="hljs-attr">steps:</span><br>      <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Checkout</span> <span class="hljs-string">source</span><br>        <span class="hljs-attr">uses:</span> <span class="hljs-string">actions/checkout@v4</span><br>        <span class="hljs-attr">with:</span><br>          <span class="hljs-attr">submodules:</span> <span class="hljs-string">recursive</span><br>          <span class="hljs-attr">fetch-depth:</span> <span class="hljs-number">0</span><br><br>      <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Setup</span> <span class="hljs-string">Node.js</span><br>        <span class="hljs-attr">uses:</span> <span class="hljs-string">actions/setup-node@v4</span><br>        <span class="hljs-attr">with:</span><br>          <span class="hljs-attr">node-version:</span> <span class="hljs-string">&quot;20&quot;</span><br>          <span class="hljs-attr">cache:</span> <span class="hljs-string">&quot;npm&quot;</span><br><br>      <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Install</span> <span class="hljs-string">Dependencies</span><br>        <span class="hljs-attr">run:</span> <span class="hljs-string">npm</span> <span class="hljs-string">ci</span> <span class="hljs-string">||</span> <span class="hljs-string">npm</span> <span class="hljs-string">install</span><br><br>      <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Generate</span> <span class="hljs-string">Files</span><br>        <span class="hljs-attr">run:</span> <span class="hljs-string">|</span><br><span class="hljs-string">          npx hexo clean</span><br><span class="hljs-string">          npx hexo generate</span><br><span class="hljs-string"></span><br>      <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Deploy</span> <span class="hljs-string">to</span> <span class="hljs-string">gh-pages</span><br>        <span class="hljs-attr">uses:</span> <span class="hljs-string">peaceiris/actions-gh-pages@v4</span><br>        <span class="hljs-attr">with:</span><br>          <span class="hljs-attr">github_token:</span> <span class="hljs-string">$&#123;&#123;</span> <span class="hljs-string">secrets.GITHUB_TOKEN</span> <span class="hljs-string">&#125;&#125;</span><br>          <span class="hljs-attr">publish_dir:</span> <span class="hljs-string">./public</span><br>          <span class="hljs-attr">publish_branch:</span> <span class="hljs-string">gh-pages</span><br>          <span class="hljs-attr">enable_jekyll:</span> <span class="hljs-literal">false</span><br>          <span class="hljs-attr">force_orphan:</span> <span class="hljs-literal">true</span><br></code></pre></td></tr></table></figure></li><li><p>試將以上程式碼推到 GitHub 上</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs bash">git init<br>git remote add origin &lt;Repo 網址&gt;<br>git branch -M main<br>git push -u origin main<br></code></pre></td></tr></table></figure></li><li><p>到 GitHub 的那個網站 Repo 中，<code>Settings</code> &rarr; <code>Pages</code> &rarr; <code>Build and deployment</code> 中，確認 <code>Source</code> 是選到 <code>Deploy from a branch</code>，並且底下 <code>Branch</code> 的部分從 <code>main</code> 改為 <code>gh-pages</code></p></li><li>到 <code>Settings</code> &rarr; <code>Environments</code> 中有一個 <code>Allow administrators to bypass configured protection rules</code> 選項打勾</li><li>等它 CI/CD 過了後，可以打開 <code>https://你的名字.github.io/</code> 看看網站是否正常上線了</li></ol><h2 id="（可選）加上插件"><a href="#（可選）加上插件" class="headerlink" title="（可選）加上插件"></a>（可選）加上插件</h2><p>插件的種類有非常多，具體要用什麼就看你自己的需求，具體怎麼設定可以問問 AI，這章節我會說我裝的兩個我覺得最實用的功能插件。</p><h3 id="MathJax"><a href="#MathJax" class="headerlink" title="MathJax"></a>MathJax</h3><p>這個插件是用來支援 LaTeX 的強大工具。</p><ol><li><p>安裝插件</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">npm install hexo-filter-mathjax --save<br></code></pre></td></tr></table></figure></li><li><p>這裡分為兩種情況</p><ul><li><p>現代化主題</p><ol><li>打開主題的設定檔 <code>_config.主題.yml</code></li><li>搜尋 <code>math</code> 或者 <code>mathjax</code></li><li>將它底下的 <code>enable</code> 設為 <code>true</code></li></ol></li><li><p>極簡主題<br> 若完全搜尋不到 <code>math</code> 或 <code>mathjax</code> 關鍵字，則打開根目錄的 <code>_config.yml</code>（不是主題的），在最後面加入以下配置：</p> <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs bash"><span class="hljs-comment"># 寫在根目錄的 _config.yml 最下方</span><br>math:<br>  engine: <span class="hljs-string">&#x27;mathjax&#x27;</span><br>  mathjax:<br>    src: https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js<br></code></pre></td></tr></table></figure></li></ul></li></ol><h3 id="Giscus"><a href="#Giscus" class="headerlink" title="Giscus"></a>Giscus</h3><p>這是用來啟用留言功能的，其原理是直接串接你這個 GitHub Repo 的 Discussions。</p><ol><li>先到自己 GitHub Repo 中，<code>Settings</code> &rarr; <code>General</code> &rarr; <code>Features</code> &rarr; 勾選 <code>Discussions</code></li><li>到 <a href="https://github.com/apps/giscus">GitHub ciscus</a> 並點擊 <code>Configure</code></li><li>到 <a href="https://giscus.app/zh-TW">giscus.app</a>，在 <code>儲存庫</code> 輸入 <code>&lt;GitHub 帳號&gt;/&lt;倉庫名稱&gt;</code>，並向下滑到 <code>啟用 giscus</code></li><li><p>這裡一樣分為兩種情況</p><ul><li><p>現代化主題</p><ol><li>打開主題設定檔 <code>_config.主題.yml</code></li><li><p>搜尋 <code>giscus</code>，將對應的參數從剛才的網頁複製過來：</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><code class="hljs yml"><span class="hljs-attr">comments:</span><br>  <span class="hljs-attr">enable:</span> <span class="hljs-literal">true</span><br>  <span class="hljs-attr">type:</span> <span class="hljs-string">giscus</span><br><br><span class="hljs-attr">giscus:</span><br>  <span class="hljs-attr">repo:</span> <span class="hljs-string">&quot;你的帳號/儲存庫名稱&quot;</span><br>  <span class="hljs-attr">repo_id:</span> <span class="hljs-string">&quot;網頁上的 data-repo-id&quot;</span><br>  <span class="hljs-attr">category:</span> <span class="hljs-string">&quot;Announcements&quot;</span><br>  <span class="hljs-attr">category_id:</span> <span class="hljs-string">&quot;網頁上的 data-category-id&quot;</span><br>  <span class="hljs-attr">mapping:</span> <span class="hljs-string">&quot;pathname&quot;</span> <span class="hljs-comment"># 或 title</span><br>  <span class="hljs-attr">theme:</span> <span class="hljs-string">&quot;light&quot;</span><br>  <span class="hljs-attr">lang:</span> <span class="hljs-string">&quot;zh-TW&quot;</span><br></code></pre></td></tr></table></figure></li></ol></li><li><p>極簡主題<br>若找不到任何 <code>comments</code> 字樣，代表主題不支援，那就只能暴力嵌入了</p><p>直接在每篇文章（或頁面，例如 <code>about/index.md</code>）最後面貼上那個網站裡 <code>啟用 giscus</code> 下方 code block 的內容</p></li></ul></li></ol><h2 id="（可選）設定-Discord-發文自動提醒"><a href="#（可選）設定-Discord-發文自動提醒" class="headerlink" title="（可選）設定 Discord 發文自動提醒"></a>（可選）設定 Discord 發文自動提醒</h2><p>你可以指定一個 DC 伺服器的某個特定頻道，在你每次發文時，自動發送通知。</p><ol><li>進入你的 DC 伺服器，選擇一個想要接收通知的頻道，進入 頻道設定 &rarr; <code>整合</code> &rarr; <code>Webhook</code> &rarr; <code>新 Webhook</code>，展開後可設定發文機器人的名稱和頭貼</li><li>複製 Webhook 網址</li><li><p>回到 GitHub Repo 的 <code>Settings</code> &rarr; <code>Secrets and variables</code> &rarr; <code>Actions</code> &rarr; <code>New repository secret</code></p><ul><li>Name: <code>DISCORD_WEBHOOK</code></li><li>Secret：貼上剛才複製的 Webhook 網址</li></ul></li><li><p>在 <code>/.github/workflows/</code> 下建立 <code>notify.yml</code>，貼上以下內容，並按需修改第 39, 41, 48, 53, 56 行</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br></pre></td><td class="code"><pre><code class="hljs yml"><span class="hljs-attr">name:</span> <span class="hljs-string">Discord</span> <span class="hljs-string">Notification</span><br><br><span class="hljs-attr">on:</span><br>  <span class="hljs-attr">push:</span><br>    <span class="hljs-attr">branches:</span><br>      <span class="hljs-bullet">-</span> <span class="hljs-string">main</span><br><br><span class="hljs-attr">jobs:</span><br>  <span class="hljs-attr">notify:</span><br>    <span class="hljs-attr">if:</span> <span class="hljs-string">startsWith(github.event.head_commit.message,</span> <span class="hljs-string">&#x27;publish&#x27;</span><span class="hljs-string">)</span><br>    <span class="hljs-attr">runs-on:</span> <span class="hljs-string">ubuntu-latest</span><br>    <span class="hljs-attr">steps:</span><br>      <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Checkout</span> <span class="hljs-string">code</span><br>        <span class="hljs-attr">uses:</span> <span class="hljs-string">actions/checkout@v3</span><br>        <span class="hljs-attr">with:</span><br>          <span class="hljs-attr">fetch-depth:</span> <span class="hljs-number">2</span><br><br>      <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Get</span> <span class="hljs-string">New</span> <span class="hljs-string">Post</span> <span class="hljs-string">Filename</span><br>        <span class="hljs-attr">id:</span> <span class="hljs-string">get_file</span><br>        <span class="hljs-attr">run:</span> <span class="hljs-string">|</span><br><span class="hljs-string">          git config --global core.quotepath false</span><br><span class="hljs-string"></span>          <br>          <span class="hljs-string">NEW_POST=$(git</span> <span class="hljs-string">diff</span> <span class="hljs-string">--name-only</span> <span class="hljs-string">HEAD^</span> <span class="hljs-string">HEAD</span> <span class="hljs-string">|</span> <span class="hljs-string">grep</span> <span class="hljs-string">&quot;source/_posts/&quot;</span> <span class="hljs-string">|</span> <span class="hljs-string">grep</span> <span class="hljs-string">&quot;.md&quot;</span> <span class="hljs-string">|</span> <span class="hljs-string">head</span> <span class="hljs-string">-n</span> <span class="hljs-number">1</span><span class="hljs-string">)</span><br>          <br>          <span class="hljs-string">if</span> [ <span class="hljs-string">-z</span> <span class="hljs-string">&quot;$NEW_POST&quot;</span> ]<span class="hljs-string">;</span> <span class="hljs-string">then</span><br>            <span class="hljs-string">echo</span> <span class="hljs-string">&quot;post_name=&quot;</span> <span class="hljs-string">&gt;&gt;</span> <span class="hljs-string">$GITHUB_OUTPUT</span><br>          <span class="hljs-string">else</span><br>            <span class="hljs-string">POST_NAME=$(basename</span> <span class="hljs-string">&quot;$NEW_POST&quot;</span> <span class="hljs-string">.md)</span><br>            <span class="hljs-string">echo</span> <span class="hljs-string">&quot;post_name=$POST_NAME&quot;</span> <span class="hljs-string">&gt;&gt;</span> <span class="hljs-string">$GITHUB_OUTPUT</span><br>          <span class="hljs-string">fi</span><br><br>      <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Send</span> <span class="hljs-string">Message</span> <span class="hljs-string">to</span> <span class="hljs-string">Discord</span><br>        <span class="hljs-attr">run:</span> <span class="hljs-string">|</span><br><span class="hljs-string">          POST_PATH=&quot;$&#123;&#123; steps.get_file.outputs.post_name &#125;&#125;&quot;</span><br><span class="hljs-string">          ENCODED_PATH=$(python3 -c &quot;import urllib.parse; print(urllib.parse.quote(&#x27;$POST_PATH&#x27;))&quot;)</span><br><span class="hljs-string"></span>          <br>          <span class="hljs-string">if</span> [ <span class="hljs-string">-z</span> <span class="hljs-string">&quot;$POST_PATH&quot;</span> ]<span class="hljs-string">;</span> <span class="hljs-string">then</span><br>            <span class="hljs-string">FINAL_URL=&quot;https://名稱.github.io/&quot;</span><br>            <span class="hljs-string">DISPLAY_TITLE=&quot;前往</span> <span class="hljs-string">網站名稱&quot;</span><br>          <span class="hljs-string">else</span><br>            <span class="hljs-string">FINAL_URL=&quot;https://名稱.github.io/$ENCODED_PATH/&quot;</span><br>            <span class="hljs-string">DISPLAY_TITLE=&quot;$POST_PATH&quot;</span><br>          <span class="hljs-string">fi</span><br><br>          <span class="hljs-string">curl</span> <span class="hljs-string">-H</span> <span class="hljs-string">&quot;Content-Type: application/json&quot;</span> <span class="hljs-string">\</span><br>          <span class="hljs-string">-X</span> <span class="hljs-string">POST</span> <span class="hljs-string">\</span><br>          <span class="hljs-string">-d</span> <span class="hljs-string">&quot;&#123;</span><br><span class="hljs-string">            \&quot;content\&quot;: \&quot;通知訊息\&quot;,</span><br><span class="hljs-string">            \&quot;embeds\&quot;: [&#123;</span><br><span class="hljs-string">              \&quot;title\&quot;: \&quot;$DISPLAY_TITLE\&quot;,</span><br><span class="hljs-string">              \&quot;url\&quot;: \&quot;$FINAL_URL\&quot;,</span><br><span class="hljs-string">              \&quot;color\&quot;: 5814783,</span><br><span class="hljs-string">              \&quot;description\&quot;: \&quot;點擊上方連結閱讀全文內容\&quot;,</span><br><span class="hljs-string">              \&quot;timestamp\&quot;: \&quot;$(date -u +%Y-%m-%dT%H:%M:%SZ)\&quot;</span><br><span class="hljs-string">            &#125;],</span><br><span class="hljs-string">            \&quot;allowed_mentions\&quot;: &#123; \&quot;roles\&quot;: [\&quot;被提及的身分組 ID\&quot;] &#125;</span><br><span class="hljs-string">          &#125;&quot;</span> <span class="hljs-string">\</span><br>          <span class="hljs-string">$&#123;&#123;</span> <span class="hljs-string">secrets.DISCORD_WEBHOOK</span> <span class="hljs-string">&#125;&#125;</span><br></code></pre></td></tr></table></figure></li><li><p>以後每次寫完文章後，在 commit message 中以 <code>publish</code> 作為開頭（前綴），即可發送通知</p><div class="note note-warning">            <p>CI/CD 腳本只會抓取第一篇修改過的 MD 內容，因此一次只能上傳一篇<br>依我的習慣，會單獨將「把 front-matter 的 <code>hide</code> 改為 <code>true</code>」作為單獨一次 commit/push</p>           </div></li></ol><h2 id="寫文章"><a href="#寫文章" class="headerlink" title="寫文章"></a>寫文章</h2><ol><li><p>可以到 <code>/scaffolds/post.md</code> 中修改想要的 front-matter（即被 <code>---</code> 包住的部分）的模板，不會修改的話也可以問問看 AI，以下放上我的作為參考（可刪註解後再使用）：</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs yml"><span class="hljs-meta">---</span><br><span class="hljs-attr">title:</span> &#123;&#123; <span class="hljs-string">title</span> &#125;&#125; <span class="hljs-comment"># 會自動代入，不用改</span><br><span class="hljs-attr">date:</span> &#123;&#123; <span class="hljs-string">date</span> &#125;&#125; <span class="hljs-comment"># 會自動代入，不用改</span><br><span class="hljs-attr">excerpt:</span> <span class="hljs-string">&quot;&quot;</span> <span class="hljs-comment"># 文章說明</span><br><span class="hljs-attr">categories:</span><br>  <span class="hljs-bullet">-</span> <span class="hljs-string">筆記與教學</span><br>  <span class="hljs-bullet">-</span> <span class="hljs-string">程式</span><br><span class="hljs-attr">tags:</span><br>  <span class="hljs-bullet">-</span> <span class="hljs-string">筆記</span><br>  <span class="hljs-bullet">-</span> <span class="hljs-string">教學</span><br>  <span class="hljs-bullet">-</span> <span class="hljs-string">程式</span><br><span class="hljs-attr">math:</span> <span class="hljs-literal">false</span> <span class="hljs-comment"># 會用到 MathJax 時開啟</span><br><span class="hljs-attr">mermaid:</span> <span class="hljs-literal">false</span> <span class="hljs-comment"># 繪製流程圖用的語法</span><br><span class="hljs-attr">hide:</span> <span class="hljs-literal">true</span> <span class="hljs-comment"># 發布文章時設為 false</span><br><span class="hljs-meta">---</span><br><span class="hljs-meta"></span><br></code></pre></td></tr></table></figure><div class="note note-primary">            <p><code>hide</code> 那一項主要是用於隱藏還沒寫完的文章，該項為 <code>true</code> 時，文章不會顯示在文章們中，也無法被搜尋功能找到，只能以網址開啟<br>發布公開文章時，請記得將它設為 <code>false</code></p>           </div><div class="note note-danger">            <p>請勿發布含有敏感資訊或不合法內容，即使 <code>hide: true</code>，因為 GitHub Repo 是 <code>Public</code>，其他人仍有辦法透過原始碼來看到那些 hide 起來的內容</p>           </div></li><li><p>建立一篇新文章，用指令建立時會自動複製樣板（<code>/scaffolds/post.md</code>）</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">hexo new <span class="hljs-string">&quot;文章標題&quot;</span><br></code></pre></td></tr></table></figure><div class="note note-success">            <p>你可以到 <code>/source/_posts</code> 中將模板的 <code>hello-world.md</code> 刪除，但網站中必須至少存在一篇文章，否則連「關於我」頁都會報 <em>404 NOT FOUND</em></p>           </div></li><li><p>使用 MD 語法來撰寫整篇文章，若要使用 AI，請先和它說明你用的主題名稱；若想自己寫，也可以先問 AI 來學你用的主題有沒有什麼特殊語法</p><div class="note note-light">            <p>因為標題已經交給 front-matter 了，因此文章從 H2（<code>##</code>）標題寫起即可</p>           </div><a class="btn" href="/還不會寫Markdown？不要再寫醜醜的README-md了！"  title="MD 語法教學" target="_blank">MD 語法教學</a></li><li><p>若有插入檔案的需求，可以將檔案放到 <code>/source/資料夾（可自創）</code> 裡面，並在文章內以 <code>/資料夾</code> 來指定，但具體嵌入檔案語法會因不同主題而不同，故此部分可問 AI</p><div class="note note-info">            <p>所有檔案名稱盡量不要有中文、特殊符號和空格（最好只用英文、數字和底線命名）</p>           </div></li><li><p>寫完後，可以使用以下指令建立本機預覽，並可在 <code>http://localhost:4000</code> 中看到網站預覽</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">hexo cl &amp;&amp; hexo g &amp;&amp; hexo s<br></code></pre></td></tr></table></figure><blockquote><p>使用 Windows CMD 者請改用 <code>;</code> 取代 <code>&amp;&amp;</code></p></blockquote></li><li><p>文章寫完後，只需要將文章推到 GitHub 上即可</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs bash">git add .<br>git commit <span class="hljs-string">&quot;填寫自己的 commit message&quot;</span><br>git push<br></code></pre></td></tr></table></figure><div class="note note-info">            <p>若你有照我先前教的設定通知的 DC Bot，則 commit message 請以 <code>publish</code> 開頭（限發文章時，若是修改其他設定的 commit，則不可以它開頭）<br>（commit message 對大小寫敏感，因此 <code>Publish</code> 並不能觸發通知的流程）</p>           </div><div class="note note-success">            <p>推到 GitHub 後，需等個一、兩分鐘，等它 CI/CD 流程跑完後網站才會更新，因此請耐心等候</p>           </div></li></ol>]]>
    </content>
    <id>https://chuen666666.com/%E4%B8%8D%E7%94%A8%E5%AF%AB%E7%A8%8B%E5%BC%8F%EF%BC%81Hexo-GitHub-Pages%E5%85%8D%E8%B2%BB%E6%9E%B6%E7%AB%99%E6%95%99%E5%AD%B8/</id>
    <link href="https://chuen666666.com/%E4%B8%8D%E7%94%A8%E5%AF%AB%E7%A8%8B%E5%BC%8F%EF%BC%81Hexo-GitHub-Pages%E5%85%8D%E8%B2%BB%E6%9E%B6%E7%AB%99%E6%95%99%E5%AD%B8/"/>
    <published>2026-01-09T16:43:32.000Z</published>
    <summary>從零開始教你怎麼免費且不寫任何一行程式碼就架設自己的個人網站</summary>
    <title>不用寫程式！Hexo + GitHub Pages 免費架站教學</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="程式" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/"/>
    <category term="競程" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/%E7%AB%B6%E7%A8%8B/"/>
    <category term="筆記" scheme="https://chuen666666.com/tags/%E7%AD%86%E8%A8%98/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="題解" scheme="https://chuen666666.com/tags/%E9%A1%8C%E8%A7%A3/"/>
    <category term="競程" scheme="https://chuen666666.com/tags/%E7%AB%B6%E7%A8%8B/"/>
    <category term="Python" scheme="https://chuen666666.com/tags/Python/"/>
    <content>
      <![CDATA[<p>下題目來源為高一 AI 班的 Google Classroom 上機考，而這些題目的出處為 <a href="https://projecteuler.net/">Project Euler</a></p><p>若有任何疑問或錯誤，可於底下留言，或主動與我聯繫</p><h2 id="第一組"><a href="#第一組" class="headerlink" title="第一組"></a>第一組</h2><h3 id="題目"><a href="#題目" class="headerlink" title="題目"></a>題目</h3><p>滿足除以正整數 $1$~$10$ 都餘 $0$ 的最小正整數是 $2520$。</p><p>請問滿足除以正整數 $1$~$20$ 都餘 $0$ 的最小正整數是多少？</p><p>原題：<a href="https://projecteuler.net/problem=5">Smallest Multiple</a></p><h3 id="題解"><a href="#題解" class="headerlink" title="題解"></a>題解</h3><p>將題目翻成更白話一點，其實就是求 $1$~$20$ 的最小公倍數</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-keyword">from</span> math <span class="hljs-keyword">import</span> lcm<br><br><span class="hljs-built_in">print</span>(lcm(*<span class="hljs-built_in">range</span>(<span class="hljs-number">1</span>, <span class="hljs-number">21</span>)))<br></code></pre></td></tr></table></figure><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">232792560<br></code></pre></td></tr></table></figure><h2 id="第二組"><a href="#第二組" class="headerlink" title="第二組"></a>第二組</h2><h3 id="題目-1"><a href="#題目-1" class="headerlink" title="題目"></a>題目</h3><p>$n!$ 的定義是 $n\times(n−1)\times\cdots\times3\times2\times1$</p><p>例如 $10!=10\times9\times\cdots\times3\times2\times1=3628800$，</p><p>所以 $10!$ 的各位數字和是 $3+6+2+8+8+0+0=27$</p><p>請找出 $100!$ 的各位數字和。</p><p>原題：<a href="https://projecteuler.net/problem=20">Factorial Digit Sum</a></p><h3 id="題解-1"><a href="#題解-1" class="headerlink" title="題解"></a>題解</h3><p>這題分為兩個部分處理，階乘的部分，我們可以直接用 <code>math.factorial()</code> 解決（雖然自己寫迴圈也沒有不行），而各位相加的部分則可以將結果先轉成字串，再逐相轉整數，最後用 <code>sum()</code> 解得，這裡為了方便，我打算直接用 generator expression，無論效率還是寫起來都比較快</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-keyword">from</span> math <span class="hljs-keyword">import</span> factorial <span class="hljs-keyword">as</span> f<br><br><span class="hljs-built_in">print</span>(<span class="hljs-built_in">sum</span>(<span class="hljs-built_in">int</span>(i) <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">str</span>(f(<span class="hljs-number">100</span>))))<br></code></pre></td></tr></table></figure><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">648<br></code></pre></td></tr></table></figure><h2 id="第三組"><a href="#第三組" class="headerlink" title="第三組"></a>第三組</h2><h3 id="題目-2"><a href="#題目-2" class="headerlink" title="題目"></a>題目</h3><p>畢氏數是一組滿足 $a^2+b^2=c^2$ 的三元自然數組 $(a,b,c)$，其中 $a&lt;b&lt;c$。</p><p>例如：$3^2+4^2=9+16=25=5^2$。</p><p>事實有一組畢氏數滿足 $a+b+c=1000$，試求該數組的 $abc$ 之值。</p><p>原題：<a href="https://projecteuler.net/problem=9">Special Pythagorean Triplet</a></p><h3 id="題解-2"><a href="#題解-2" class="headerlink" title="題解"></a>題解</h3><p>首先先將 $a,b$ 暴力迴圈找出來，即可找到一個 $c=\sqrt{a^2+b^2}$，接著拆成兩步判斷，先判斷 $c$ 是否是正整數（檢查三數是否是畢氏數），再判斷三數和是否為 $1000$ 即可</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-keyword">for</span> a <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">1</span>, <span class="hljs-number">1000</span>):<br>    <span class="hljs-keyword">for</span> b <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(a, <span class="hljs-number">1000</span>): <span class="hljs-comment"># 從 a 開始，可提升效率</span><br>        c = (a**<span class="hljs-number">2</span> + b**<span class="hljs-number">2</span>)**<span class="hljs-number">0.5</span><br>        <span class="hljs-keyword">if</span> c.is_integer():<br>            c = <span class="hljs-built_in">int</span>(c)<br>        <span class="hljs-keyword">else</span>:<br>            <span class="hljs-keyword">continue</span><br>        <span class="hljs-keyword">if</span> a + b + c == <span class="hljs-number">1000</span>:<br>            <span class="hljs-built_in">print</span>(a*b*c)<br>            exit()<br></code></pre></td></tr></table></figure><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">31875000<br></code></pre></td></tr></table></figure><h2 id="第四組"><a href="#第四組" class="headerlink" title="第四組"></a>第四組</h2><h3 id="題目-3"><a href="#題目-3" class="headerlink" title="題目"></a>題目</h3><p>$2^{15}=32768$，它的各位數字和為 $3+2+7+6+8=26$。</p><p>試求出 $2^{1000}$ 的各位數字和？</p><p>原題：<a href="https://projecteuler.net/problem=16">Largest Palindrome Product</a></p><h3 id="題解-3"><a href="#題解-3" class="headerlink" title="題解"></a>題解</h3><p>在 Python 中，做這種題目簡直太簡單了，我們直接將 $2^{1000}$ 算出來後，再算各位和即可，沒有任何技巧可言</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-built_in">print</span>(<span class="hljs-built_in">sum</span>(<span class="hljs-built_in">int</span>(i) <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">str</span>(<span class="hljs-number">2</span>**<span class="hljs-number">1000</span>)))<br></code></pre></td></tr></table></figure><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">1366<br></code></pre></td></tr></table></figure><h2 id="第五組"><a href="#第五組" class="headerlink" title="第五組"></a>第五組</h2><h3 id="題目-4"><a href="#題目-4" class="headerlink" title="題目"></a>題目</h3><p>迴文數是一種從左到右與從右到左，結果是一樣的數</p><p>由兩個二位數的乘積所能得到的最大迴文數是 $9009=91\times99$，</p><p>請找到由兩個三位數的乘積所能得到的最大迴文數為何？</p><p>原題：<a href="https://projecteuler.net/problem=4">Largest Palindrome Product</a></p><h3 id="題解-4"><a href="#題解-4" class="headerlink" title="題解"></a>題解</h3><p>這題一樣是拆成「迴圈」與「兩個三位數的乘積」兩部分，迴文很簡單，我們直接看它與它自己的相反字串是否一樣即可，這裡我為了不改變原數字的類型，選擇自訂函式來進行判斷；兩個三位數的乘積則是使用兩個 for-loop 去跑 $100$~$999$ 即可</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">is_pal</span>(<span class="hljs-params">n</span>):</span><br>    n = <span class="hljs-built_in">str</span>(n)<br>    <span class="hljs-keyword">return</span> n == n[::-<span class="hljs-number">1</span>]<br><br>m = <span class="hljs-number">0</span><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">1000</span>, <span class="hljs-number">101</span>, -<span class="hljs-number">1</span>):<br>    <span class="hljs-keyword">for</span> j <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">1000</span>, <span class="hljs-number">101</span>, -<span class="hljs-number">1</span>):<br>        <span class="hljs-keyword">if</span> is_pal(i*j):<br>            m = <span class="hljs-built_in">max</span>(m, i*j)<br><span class="hljs-built_in">print</span>(m)<br></code></pre></td></tr></table></figure><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">906609<br></code></pre></td></tr></table></figure><h2 id="第六組"><a href="#第六組" class="headerlink" title="第六組"></a>第六組</h2><h3 id="題目-5"><a href="#題目-5" class="headerlink" title="題目"></a>題目</h3><p>費氏數列（Fibonacci sequence）的每一項，都是由前兩項的和所產生。</p><p>如果考慮前兩項為 $1$、$2$，則前 10 項為 $1$、$2$、$3$、$5$、$8$、$13$、$21$、$34$、$55$、$89$。</p><p>依照這個數列的規則，找出所有值不超過 $400,0000$ 的偶值項，求其和。</p><p>原題：<a href="https://projecteuler.net/problem=2">Even Fibonacci Numbers</a></p><h3 id="題解-5"><a href="#題解-5" class="headerlink" title="題解"></a>題解</h3><p>費氏數列（或者大家更習慣叫它「斐波那契數列」）的題在程式界一直是新手的經典入門題，它的解法從最暴力的遞迴、用 list 存已算過值的 DP、用 dict 存已算過值的 DP、DP 優化的裝飾器套件，到現在最高效率的只維護兩個變數的做法，我們將採用最後一種</p><p>我們只需要維護兩個變數，用這兩個變數不斷自己相加，即可得到費氏數列任意項</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs python">ans, a, b = <span class="hljs-number">0</span>, <span class="hljs-number">1</span>, <span class="hljs-number">2</span><br><br><span class="hljs-keyword">while</span> b &lt;= <span class="hljs-number">400_0000</span>:<br>    <span class="hljs-keyword">if</span> b % <span class="hljs-number">2</span> == <span class="hljs-number">0</span>: <span class="hljs-comment"># 偶值項的和</span><br>        ans += b<br>    a, b = b, a + b<br><br><span class="hljs-built_in">print</span>(ans)<br></code></pre></td></tr></table></figure><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">4613732<br></code></pre></td></tr></table></figure>]]>
    </content>
    <id>https://chuen666666.com/%E9%99%BD%E6%98%8E%E9%AB%98%E4%B8%AD112%E5%B9%B4AI%E7%8F%ADPython%E4%B8%8A%E6%A9%9F%E8%80%83%E2%80%94%E2%80%94%E9%A1%8C%E7%9B%AE-%E8%A9%B3%E8%A7%A3/</id>
    <link href="https://chuen666666.com/%E9%99%BD%E6%98%8E%E9%AB%98%E4%B8%AD112%E5%B9%B4AI%E7%8F%ADPython%E4%B8%8A%E6%A9%9F%E8%80%83%E2%80%94%E2%80%94%E9%A1%8C%E7%9B%AE-%E8%A9%B3%E8%A7%A3/"/>
    <published>2026-01-07T03:12:28.000Z</published>
    <summary>AI 班 Python 期末上機考的題目與詳解</summary>
    <title>陽明高中 112 年 AI 班 Python 上機考——題目 + 詳解</title>
    <updated>2026-05-17T09:26:02.802Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="程式" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/"/>
    <category term="專案" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/%E5%B0%88%E6%A1%88/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="Python" scheme="https://chuen666666.com/tags/Python/"/>
    <category term="教學" scheme="https://chuen666666.com/tags/%E6%95%99%E5%AD%B8/"/>
    <category term="Discord Bot" scheme="https://chuen666666.com/tags/Discord-Bot/"/>
    <content>
      <![CDATA[<h2 id="建立機器人"><a href="#建立機器人" class="headerlink" title="建立機器人"></a>建立機器人</h2><ol><li>先準備好一個 Bot 準備要加入的伺服器（需擁有權限）</li><li>到 <a href="https://discord.com/developers/applications">Discord Dev</a> 官網，點擊右上角 <code>New Application</code>，填入機器人名稱後，點擊 <code>Create</code></li><li>可以分別在 <code>App Icon</code>、<code>Name</code>、<code>Description</code>、<code>Tags</code> 欄位中，指定機器人<strong>頭貼</strong>、<strong>名稱</strong>、<strong>簡介</strong>（即使用者點開機器人後顯示在簡介欄的內容）、<strong>標籤</strong></li><li>到 <code>Installation</code> 中，依自己需求勾選 <code>User Install</code>（使用者從 Bot 簡介點擊<strong>新增應用程式</strong>）或／和 <code>Guild Install</code>（邀入伺服器內使用）</li><li>到 <code>Bot</code> 中，可以設定 Bot 的<strong>頭貼</strong>、<strong>背景橫幅</strong>、<strong>名稱</strong>，之後往下滑，將 <code>Presence Intent</code>、<code>Server Members Intent</code>、<code>Message Content Intent</code> 勾起來，下方 <code>Bot Permissions</code> 可以依自己需要打勾，建議可以將 <code>Public Bot</code> 取消勾選（依喜好，決定他人是否可以邀你的 Bot 進其他群）</li><li>到 <code>OAuth2</code> 中的 <code>OAuth2 URL Generator</code>，勾選 <code>bot</code> 和 <code>applications.commands</code>，並滑到下方展開的另一個大類（<code>Bot Permissions</code>），依自己的需要勾選權限</li><li>滑到最下面，點擊 <code>Generated URL</code> 右邊的複製鈕，並貼到瀏覽器中，即可將 Bot 邀請進先前建立好的伺服器</li><li><p>回到 <code>Bot</code> 中，複製 <code>Token</code>；若只有 <code>Reset Token</code>，先按它，再複製即可</p><div class="note note-danger">            <p>Bot Token 相當於 Bot 的帳號密碼，任何擁有它的人都可以任意控制該 Bot，因此請妥善保管<br>勿將 Token 公開出來，或上傳到 GitHub 中，或者直接寫進主要程式碼當中<br>一旦發現任何外泄的可能，請立即回到 <a href="https://discord.com/developers/applications">Discord Dev</a> 中的 <code>Bot</code>，並點擊 <code>Reset Token</code> 以更新新的 Token</p>           </div></li><li><p>【可選】在伺服器中建立一個 Bot 專用身分組（管理員權限），方便管理與排版的同時，也不會因為當初沒開到某個權限而讓 Bot 運作不了；但這樣的操作也得承擔萬一 Bot 被盜，越高權限可能讓它的危害越大的風險</p></li></ol><h2 id="電腦環境"><a href="#電腦環境" class="headerlink" title="電腦環境"></a>電腦環境</h2><ol><li>Python：至少 3.8+，建議 3.10+</li><li>IDE：此以 VS Code 為例，並會使用 VS Code 的「原始檔控制」（圖形化的 Git 操作）代替所有 CLI 指令</li><li>到 GitHub 中，點擊右上角的 <code>+</code>，並點 <code>New repository</code><ul><li><code>Name</code> 和 <code>Description</code> 可隨便填</li><li><code>Choose visibility</code> 無論設定什麼權限都可以，但它會直接影響到別人看不看得到你這個 Repository（倉庫，下簡稱 Repo）</li><li>關掉 <code>Add README</code></li><li>點擊 <code>Create repository</code></li></ul></li><li>建立一個資料夾，名稱任意，並創建以下檔案：</li></ol><ul><li><code>main.py</code>：主要 Bot 程式</li><li><code>.env</code>：放置 Token 專用</li><li><code>config.json</code>：用來放置所有 Discord 頻道 ID</li><li><code>.gitignore</code>：放置所有不想被上傳到 Git 的檔案</li><li><code>README.md</code>：與其他人說明 Bot 的安裝與使用方式等（若 <code>Visibility</code> 為 <code>Private</code>，此項可省略）</li><li><code>requirements.txt</code>：所有 Python 檔會用到的第三方套件（即需要 <code>pip install &lt;package&gt;</code> 的東西）</li></ul><ol><li>在 VS Code 中，在剛才的資料夾底下建立一個 Venv，這是 Python 自帶的虛擬環境，讓每個專案之間用的套件或 Python 版本不會互相打架<ol><li>用 VS Code 打開剛才的 <code>main.py</code></li><li>點擊右下角寫著 Python 版本的數字</li><li>點擊 <code>建立虛擬環境…</code> &rarr; <code>Venv</code> &rarr; <code>Python 3.X</code></li></ol></li></ol><h2 id="檔案內容"><a href="#檔案內容" class="headerlink" title="檔案內容"></a>檔案內容</h2><h3 id="env"><a href="#env" class="headerlink" title=".env"></a>.env</h3><p>貼上先前複製的 Bot Token 到 <code>&lt;Token&gt;</code>（<code>&lt;</code> 和 <code>&gt;</code> 也不用留）</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs env">TOKEN=&lt;Token&gt;<br></code></pre></td></tr></table></figure><p>特別注意，ENV 檔不能加任何引號或空格，否則會讀不到</p><h3 id="config-json"><a href="#config-json" class="headerlink" title="config.json"></a>config.json</h3><p>為了讓程式好修改，我們會習慣將 Discord 頻道的 ID 都放到這裡</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs json">&#123;<br>  <span class="hljs-attr">&quot;CHANNEL1&quot;</span>: ID1,<br>  <span class="hljs-attr">&quot;CHANNEL2&quot;</span>: ID2<br>&#125;<br></code></pre></td></tr></table></figure><p>不一定要將所有頻道都放入，只要放 Bot 會需要特別控制的頻道（如指令區、特別管理的頻道等）</p><p>一般來說，寫進此檔的頻道名稱可以自己取（不用和 DC 一樣），但習慣上會用全大寫表示常數（不改變值的變數）；ID 則固定使用整數型別存放（即不用加引號）</p><p>要取得頻道 ID，請在 DC 的設定 <code>進階</code> &rarr; <code>開發者模式</code> 開啟選項，之後直接對著想要取值的頻道點擊右鍵，即可找到複製頻道 ID 的選項</p><h3 id="gitignore"><a href="#gitignore" class="headerlink" title=".gitignore"></a>.gitignore</h3><p>放這裡的檔案都不會被上傳到 Git，除了執行時可能產生的一些不需要的文件以外，也要放一些敏感資料，例如我們先前提過的 <code>.env</code>，以免把重要資料公開給大家知道，即使你的 Repo 設為 <code>Private</code>，這一步仍對資安而言很重要！</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br></pre></td><td class="code"><pre><code class="hljs gitignore"># Environment/Channel ID<br>.env<br>config.json<br><br># Venv<br>venv/<br>.venv/<br>env/<br><br># Python<br>__pycache__/<br>*.pyc<br><br># Logs<br>*.log<br>logs/<br><br># Build<br>build/<br>dist/<br>*.egg-info/<br><br># Tests<br>.pytest_cache/<br>.coverage<br>htmlcov/<br><br># IDE/OS<br>.DS_Store<br>Thumbs.db<br>.vscode/<br>.idea/<br></code></pre></td></tr></table></figure><h3 id="README-md"><a href="#README-md" class="headerlink" title="README.md"></a>README.md</h3><p>這會顯示在你 GitHub 專案首頁，通常會放介紹、安裝方式、功能說明等，依自己需求撰寫即可</p><p>通常會提及 <code>config.json</code> 和 <code>.env</code> 的建置，因為它們已被放入 <code>.gitignore</code>，因此需額外說明</p><h3 id="requirements-txt"><a href="#requirements-txt" class="headerlink" title="requirements.txt"></a>requirements.txt</h3><p>這是 Python Venv 安裝後，會需要安裝的套件，有了這個檔案，任何使用者都可以快速建立好一模一樣的環境</p><p>版本號不是必填，如果沒有寫，它會自動安裝最新版，不過為了穩定性，建議還是寫一個下限版本，如下：</p><figure class="highlight txt"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs txt">discord.py&gt;=2.4.0<br>python-dotenv&gt;=1.0.0<br>flask&gt;=3.0.0<br></code></pre></td></tr></table></figure><p>寫好這個檔案後，除了給別人看以外，我們自己也得先執行一次，來安裝等等會用到的套件</p><p>記得執行指令時，要在這個專案底下的 Terminal 才能找到 <code>requirements.txt</code></p><p>在 VS Code 中，可以點擊左上角 三條線 &rarr; <code>終端機</code> &rarr; <code>新增終端機</code> 來打開 Terminal，並且可以使用 <code>cd &lt;資料夾路徑&gt;</code> 切換到專案所在的目錄</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">pip install -r requirements.txt<br></code></pre></td></tr></table></figure><h2 id="推到-GitHub-上"><a href="#推到-GitHub-上" class="headerlink" title="推到 GitHub 上"></a>推到 GitHub 上</h2><p>完成了剛才的工作後，我們就可以先來提交第一次的 GitHub 推送</p><ol><li>回到先前創建的 Repo 頁，並找到下圖連結，點擊複製鈕</li></ol><img src="/img/github_link.png" class=""><ol><li>回到專案所在的目錄底下，輸入以下指令：</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs bash">git init<br>git branch -M main<br>git remote add origin &lt;剛才複製的 Repo 連結&gt;<br></code></pre></td></tr></table></figure><ol><li>到 VS Code，點擊右側欄的「原始檔控制」（或使用 <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>G</kbd>），點擊「變更」字樣右邊的加號鈕，此步相當於以下指令：</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">git add .<br></code></pre></td></tr></table></figure><ol><li>在上方訊息欄中，輸入任意訊息（例如 <code>first commit</code>），這個訊息叫作「commit message」，是為了方便辨識每次的推送，此為必填項，填完後再點擊下方 <code>提交</code>，此步相當於以下指令：</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">git commit -m <span class="hljs-string">&quot;first commit&quot;</span><br></code></pre></td></tr></table></figure><ol><li><code>提交</code> 點完後，按鈕會變為 <code>發佈 Branch</code>（若已建立追踪，即不是第一次提交，則按鈕會叫作 <code>同步變更</code>），點擊它，即可完成上傳，此步相當於以下指令：</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs bash">git push -u origin main <span class="hljs-comment"># 第一次推送</span><br>git push <span class="hljs-comment"># 已建立追踪後推送</span><br></code></pre></td></tr></table></figure><h2 id="主程式"><a href="#主程式" class="headerlink" title="主程式"></a>主程式</h2><p>這一章裡，我會把整個程式拆成好幾個不同步分來說，不過對程式檔本身而言，是有照順序的，因此可以放心從上到下一步步跟著操作</p><h3 id="匯入"><a href="#匯入" class="headerlink" title="匯入"></a>匯入</h3><p>這裡是整個架構會用到的東西，如果你程式裡還會用到其他套件，記得一起放入這一區塊中（第三方套件也要記得一併放入 <code>requirements.txt</code> 中）</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-keyword">import</span> json<br><span class="hljs-keyword">import</span> os<br><span class="hljs-keyword">from</span> pathlib <span class="hljs-keyword">import</span> Path<br><br><span class="hljs-keyword">import</span> discord<br><span class="hljs-keyword">from</span> discord.ext <span class="hljs-keyword">import</span> commands<br><span class="hljs-keyword">from</span> dotenv <span class="hljs-keyword">import</span> load_dotenv<br><span class="hljs-keyword">from</span> flask <span class="hljs-keyword">import</span> Flask<br><span class="hljs-keyword">from</span> threading <span class="hljs-keyword">import</span> Thread<br></code></pre></td></tr></table></figure><h3 id="啟動迷你網頁"><a href="#啟動迷你網頁" class="headerlink" title="啟動迷你網頁"></a>啟動迷你網頁</h3><p>雖然在本機跑程式時，這裡的功能跟本用不上，不過它其實是為了後面將 Bot 跑在線上的托管平台時，能持續保持上線的關鍵之一</p><p>其原理是透過創一個迷你網頁，加上自動訪問網頁的機器人，讓網頁保持活躍，使 <code>main.py</code> 能夠一直跑下去，從而讓 Bot 本身也保持著上線</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-comment"># 啟動迷你網頁，讓 Render 持續上線</span><br>app = Flask(__name__)<br><br><span class="hljs-meta">@app.route(<span class="hljs-params"><span class="hljs-string">&#x27;/&#x27;</span></span>)</span><br><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">home</span>():</span><br>    <span class="hljs-keyword">return</span> <span class="hljs-string">&quot;I&#x27;m alive!&quot;</span><br><br><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">run</span>():</span><br>    app.run(host=<span class="hljs-string">&#x27;0.0.0.0&#x27;</span>, port=<span class="hljs-number">8080</span>)<br><br><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">keep_alive</span>():</span><br>    t = Thread(target=run)<br>    t.daemon = <span class="hljs-literal">True</span><br>    t.start()<br></code></pre></td></tr></table></figure><h3 id="讀取-config-json-和-env"><a href="#讀取-config-json-和-env" class="headerlink" title="讀取 config.json 和 .env"></a>讀取 <code>config.json</code> 和 <code>.env</code></h3><p>這裡為了穩定性，我選擇使用 <code>pathlib.Path</code> 來設定目前所在的位置（<code>BASE_DIR</code>）</p><p>可能有人不理解為什麼不用相對路徑寫，但其實是因為在不同操作系統間，路徑可能都會有些微差異，尤其對使用 Windows 的人而言，大多托管平台都是 Linux，路徑上會有些差異，因此使用「變數湊成的絕對路徑」才是一個更穩定的方式</p><p>而讀取 <code>config.json</code> 和 <code>.env</code> 的程式雖然看起來有點複雜，不過其實這樣的寫法都是為了在各操作系統間以及本機和線上托管平台的環境差異而存在</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><code class="hljs python">BASE_DIR = Path(__file__).resolve().parent<br><br><span class="hljs-comment"># 讀取 config.json</span><br><span class="hljs-keyword">if</span> os.path.exists(<span class="hljs-string">&#x27;/etc/secrets/config.json&#x27;</span>):<br>    CONFIG_PATH = Path(<span class="hljs-string">&#x27;/etc/secrets/config.json&#x27;</span>)<br><span class="hljs-keyword">elif</span> (BASE_DIR / <span class="hljs-string">&#x27;config.json&#x27;</span>).exists():<br>    CONFIG_PATH = BASE_DIR / <span class="hljs-string">&#x27;config.json&#x27;</span><br><span class="hljs-keyword">else</span>:<br>    CONFIG_PATH = Path(<span class="hljs-string">&#x27;config.json&#x27;</span>)<br><br><span class="hljs-keyword">try</span>:<br>    <span class="hljs-keyword">with</span> CONFIG_PATH.<span class="hljs-built_in">open</span>(<span class="hljs-string">&#x27;r&#x27;</span>, encoding=<span class="hljs-string">&#x27;utf-8&#x27;</span>) <span class="hljs-keyword">as</span> f:<br>        config = json.load(f)<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;成功讀取設定檔：<span class="hljs-subst">&#123;CONFIG_PATH&#125;</span>&#x27;</span>)<br><span class="hljs-keyword">except</span> Exception <span class="hljs-keyword">as</span> e:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;讀取設定檔失敗！路徑：<span class="hljs-subst">&#123;CONFIG_PATH&#125;</span>，錯誤：<span class="hljs-subst">&#123;e&#125;</span>&#x27;</span>)<br><br><span class="hljs-comment"># 讀取 .env</span><br>load_dotenv()<br>TOKEN = os.getenv(<span class="hljs-string">&#x27;TOKEN&#x27;</span>)<br></code></pre></td></tr></table></figure><h3 id="設定-intents"><a href="#設定-intents" class="headerlink" title="設定 intents"></a>設定 intents</h3><p>這個設定是為了控制機器人「能夠收到哪些類型的事件」，若沒有顯示開啟，機器人將不能讀取或接收到那類型的事件</p><p>另外，在 <code>command_prefix=&#39;!&#39;</code> 的部分，可以將 <code>!</code> 改為任何想要的指令前綴，不過這部分不影響斜線指令（且勿將它設為斜線）</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs python">intents = discord.Intents.default()<br>intents.guilds = <span class="hljs-literal">True</span><br>intents.其他需要接收的事件 = <span class="hljs-literal">True</span><br><br>bot = commands.Bot(command_prefix=<span class="hljs-string">&#x27;!&#x27;</span>, intents=intents)<br></code></pre></td></tr></table></figure>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-81ad9a70" role="button" aria-expanded="false" aria-controls="collapse-81ad9a70">        <div class="fold-arrow">▶</div> 所有事件一覽表      </div>      <div class="fold-collapse collapse" id="collapse-81ad9a70">        <div class="fold-content">          <div class="table-container"> <table> <thead> <tr> <th style="text-align:center">事件（Intent）名稱</th> <th style="text-align:center">事件簡介</th> <th style="text-align:center">是否特權</th> </tr> </thead> <tbody> <tr> <td style="text-align:center"><code>guilds</code></td> <td style="text-align:center">伺服器相關事件（加入、刪除、更新）</td> <td style="text-align:center">否</td> </tr> <tr> <td style="text-align:center"><code>members</code></td> <td style="text-align:center">伺服器成員事件（加入、離開、更新、成員列表）</td> <td style="text-align:center">是</td> </tr> <tr> <td style="text-align:center"><code>bans</code></td> <td style="text-align:center">伺服器封禁／解除封禁事件</td> <td style="text-align:center">否</td> </tr> <tr> <td style="text-align:center"><code>emojis_and_stickers</code></td> <td style="text-align:center">伺服器表情符號與貼圖事件</td> <td style="text-align:center">否</td> </tr> <tr> <td style="text-align:center"><code>integrations</code></td> <td style="text-align:center">伺服器整合事件（如 Twitch、YouTube 整合）</td> <td style="text-align:center">否</td> </tr> <tr> <td style="text-align:center"><code>webhooks</code></td> <td style="text-align:center">webhook 更新事件</td> <td style="text-align:center">否</td> </tr> <tr> <td style="text-align:center"><code>invites</code></td> <td style="text-align:center">邀請建立／刪除事件</td> <td style="text-align:center">否</td> </tr> <tr> <td style="text-align:center"><code>voice_states</code></td> <td style="text-align:center">語音頻道狀態事件（成員加入／離開語音、靜音、說話狀態）</td> <td style="text-align:center">否</td> </tr> <tr> <td style="text-align:center"><code>presences</code></td> <td style="text-align:center">成員狀態事件（上線／離線／遊戲狀態）</td> <td style="text-align:center">是</td> </tr> <tr> <td style="text-align:center"><code>messages</code></td> <td style="text-align:center">訊息建立／刪除／編輯事件</td> <td style="text-align:center">否</td> </tr> <tr> <td style="text-align:center"><code>message_content</code></td> <td style="text-align:center">讀取訊息文字</td> <td style="text-align:center">是</td> </tr> <tr> <td style="text-align:center"><code>reactions</code></td> <td style="text-align:center">訊息反應事件（新增／移除表情反應）</td> <td style="text-align:center">否</td> </tr> <tr> <td style="text-align:center"><code>typing</code></td> <td style="text-align:center">使用者正在輸入事件</td> <td style="text-align:center">否</td> </tr> </tbody> </table> </div> <blockquote> <p><strong>是否特權</strong>指的是需要到 <a href="https://discord.com/developers/applications">Discord Dev</a> 中的 <code>Bot</code> &rarr; <code>Gateway Intents</code> 特別開啟才能接收</p> </blockquote>         </div>      </div>    </div><h3 id="主要程式"><a href="#主要程式" class="headerlink" title="主要程式"></a>主要程式</h3><p>先說，這個部分機乎不可能全講，因為真的多到爆炸，因此這裡只會示範幾個基本的事件和指令，至於具體要實現什麼功能，可參考<a href="https://discordpy.readthedocs.io/en/stable/index.html">官方文檔</a>，或者直接問 AI</p><p>這裡要特別注意，我們如果要取頻道 ID，請透過 <code>config[&#39;CHANNEL_ID&#39;]</code></p><p>程式中的函式主要結構是以一個裝飾器加上 <code>async def</code> 來寫，這種函數的名稱必須按照 Discord.py API 規定命名，才能被正確觸發；而操作的部分，會使用 <code>await</code> 來執行</p><p>Discord.py 框架中，還有一個非常方便的寫法，也就是它會自動把引數透過類型註示（Type Hint）進行轉換，非常方便</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-comment"># 機器人上線事件</span><br><span class="hljs-meta">@bot.event</span><br><span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">on_ready</span>():</span><br>    channel = bot.get_channel(config[<span class="hljs-string">&#x27;UPDATE&#x27;</span>])<br>    <span class="hljs-keyword">try</span>:<br>        synced = <span class="hljs-keyword">await</span> bot.tree.sync() <span class="hljs-comment"># 自動同步指令（程式與 Bot 間的同步）</span><br>        <span class="hljs-keyword">if</span> channel:<br>            <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;自動同步成功！同步了 <span class="hljs-subst">&#123;<span class="hljs-built_in">len</span>(synced)&#125;</span> 條指令！&#x27;</span>) <span class="hljs-comment"># 顯示在終端機（除錯用）</span><br>    <span class="hljs-keyword">except</span> Exception <span class="hljs-keyword">as</span> e:<br>        <span class="hljs-keyword">if</span> channel:<br>            <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;自動同步失敗：<span class="hljs-subst">&#123;e&#125;</span>&#x27;</span>)<br>    <span class="hljs-keyword">finally</span>:<br>        update_member_count_loop.start()<br><br><span class="hljs-comment"># 成員加入／離開事件</span><br><span class="hljs-meta">@bot.event</span><br><span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">on_member_join</span>(<span class="hljs-params">member</span>):</span><br>    channel = bot.get_channel(config[<span class="hljs-string">&#x27;JOIN&#x27;</span>])<br>    <span class="hljs-keyword">await</span> channel.send(<span class="hljs-string">f&#x27;**<span class="hljs-subst">&#123;member&#125;</span>** 加入了伺服器！&#x27;</span>) <span class="hljs-comment"># 在指定頻道中傳送歡迎訊息</span><br><span class="hljs-meta">@bot.event</span><br><span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">on_member_remove</span>(<span class="hljs-params">member</span>):</span><br>    channel = bot.get_channel(config[<span class="hljs-string">&#x27;LEAVE&#x27;</span>])<br>    <span class="hljs-keyword">await</span> channel.send(<span class="hljs-string">f&#x27;**<span class="hljs-subst">&#123;member&#125;</span>** 離開了伺服器！&#x27;</span>) <span class="hljs-comment"># 在指定頻道中傳送離開訊息</span><br><br><span class="hljs-comment"># 斜線指令</span><br><span class="hljs-meta">@bot.hybrid_command()</span><br><span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">greet</span>(<span class="hljs-params">ctx</span>):</span> <span class="hljs-comment"># ctx 代表指令的上下文，包含了許多有用的資訊</span><br>    <span class="hljs-keyword">await</span> ctx.send(<span class="hljs-string">f&#x27;你好，<span class="hljs-subst">&#123;ctx.author.mention&#125;</span>！&#x27;</span>) <span class="hljs-comment"># ctx.author.mention 會提及發送指令的使用者</span><br><br><span class="hljs-meta">@bot.hybrid_command()</span><br><span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">add</span>(<span class="hljs-params">ctx, a: <span class="hljs-built_in">int</span>, b: <span class="hljs-built_in">int</span></span>):</span> <span class="hljs-comment"># 參數 a 和 b 會自動轉成整數</span><br>    <span class="hljs-string">&quot;&quot;&quot;計算兩數字和並回傳結果&quot;&quot;&quot;</span> <span class="hljs-comment"># 自動顯示在 DC 的指令說明中</span><br>    result = a + b<br>    <span class="hljs-keyword">await</span> ctx.send(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;a&#125;</span> + <span class="hljs-subst">&#123;b&#125;</span> = <span class="hljs-subst">&#123;result&#125;</span>&#x27;</span>) <span class="hljs-comment"># 回傳計算結果</span><br></code></pre></td></tr></table></figure><h3 id="啟動-Bot"><a href="#啟動-Bot" class="headerlink" title="啟動 Bot"></a>啟動 Bot</h3><p>最後，加上這一段，讓 Bot 能夠跑起來</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-comment"># 啟動 Bot</span><br><span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">&#x27;__main__&#x27;</span>:<br>    <span class="hljs-keyword">if</span> TOKEN:<br>        keep_alive()<br>        bot.run(TOKEN)<br>    <span class="hljs-keyword">else</span>:<br>        <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;錯誤！找不到 TOKEN！&#x27;</span>)<br></code></pre></td></tr></table></figure><p>完成整個程式碼後，我們可以先在自己電腦上測試看看，執行 <code>main.py</code> 後，Bot 是否有順利上線，並且能夠正常回應指令，一切都沒問題後，我們記得把它推上 GitHub（<code>原始檔控制</code> &rarr; <code>變更</code> 右邊的 <code>+</code> &rarr; 輸入 commit message &rarr; <code>提交</code> &rarr; <code>同步變更</code>，或用以下指令）</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs bash">git add .<br>git commit -m <span class="hljs-string">&quot;寫自己的 commit message 在這個引號中&quot;</span><br>git push<br></code></pre></td></tr></table></figure><h2 id="線上托管"><a href="#線上托管" class="headerlink" title="線上托管"></a>線上托管</h2><p>在自己電腦上執行 <code>main.py</code> 後，理論上 Bot 就會上線，不過為了讓它能夠 24 小時都在線上，我們需要把它放到線上的托管平台跑</p><ol><li>到 <a href="https://dashboard.render.com/login">Render</a>，使用 GitHub 登入</li><li>點擊 <code>Create new project</code> &rarr; <code>New service</code> &rarr; <code>Web Service</code> &rarr; Discord Bot 的 Repo</li><li>進行以下設定：<ul><li><code>Language</code>：選擇 <code>Python3</code>（應為預設值）</li><li><code>Branch</code>：選擇 <code>main</code>（應為預設值）</li><li><code>Build Command</code>：<code>pip install -r requirements.txt</code>（應為預設值）</li><li><code>Start Command</code>：輸入 <code>python main.py</code></li><li><code>Instance Type</code>：選擇免費的 <code>Free</code></li><li><code>Environment Variables</code>：名稱填入 <code>TOKEN</code>，值則貼上你的 Bot Token</li><li><code>Advanced</code><ul><li><code>Select Files</code>：點擊 <code>Add Secret File</code>，名稱填入 <code>config.json</code>，內容則貼上 <code>config.json</code> 內容</li><li><code>Health Check Path</code>：填入 <code>/</code></li></ul></li></ul></li><li>點擊 <code>Create Web Service</code>，它就會自動開始部署，並且未來若有編輯任何程式並推送到 GitHub 上，它也會自動重新部署；若希望手動重新部署，可點擊 <code>Manual Deploy</code> &rarr; <code>Clear build cache &amp; deploy</code></li><li>如下圖，將 Render 連結複製起來</li></ol><img src="/img/render_url.png" class=""><h2 id="讓-Bot-24-小時上線"><a href="#讓-Bot-24-小時上線" class="headerlink" title="讓 Bot 24 小時上線"></a>讓 Bot 24 小時上線</h2><p>雖然我們已把 Bot 放到 Render 上，但免費方案在 15 分鐘內若沒有任何流量，它就會自動休眠，Bot 也就離線了</p><p>為了讓它持續有流量，我們可以設定一個機器人，每五分鐘就定期訪問一次 Render 網址，讓它保持活躍，這也正是我們前面寫的迷你網頁的用途</p><ol><li>到 <a href="https://dashboard.uptimerobot.com/login?ref=header">UptimeRobot</a>，使用 GitHub 登入</li><li>點擊 <code>New</code></li><li>在 <code>URL to monitor</code> 中，貼上剛才複製的 Render 網址</li><li>其他設定保持預設，點擊 <code>Create Monitor</code>，一切應該就大功告成了！</li></ol>]]>
    </content>
    <id>https://chuen666666.com/%E5%BE%9E%E9%9B%B6%E9%96%8B%E5%A7%8B%E7%94%A8Python%E5%AF%ABDiscord%E6%A9%9F%E5%99%A8%E4%BA%BA+%E5%85%8D%E8%B2%BB24%E5%B0%8F%E6%99%82%E5%9C%A8%E7%B7%9A%E6%95%99%E5%AD%B8/</id>
    <link href="https://chuen666666.com/%E5%BE%9E%E9%9B%B6%E9%96%8B%E5%A7%8B%E7%94%A8Python%E5%AF%ABDiscord%E6%A9%9F%E5%99%A8%E4%BA%BA+%E5%85%8D%E8%B2%BB24%E5%B0%8F%E6%99%82%E5%9C%A8%E7%B7%9A%E6%95%99%E5%AD%B8/"/>
    <published>2026-01-03T14:56:43.000Z</published>
    <summary>教你用完全免費的方式，從零開始建立一個 Discord 機器人，並且讓它 24 小時在線上運作</summary>
    <title>從零開始用 Python 寫 Discord 機器人 + 免費 24 小時在線教學</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="數學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E6%95%B8%E5%AD%B8/"/>
    <category term="筆記" scheme="https://chuen666666.com/tags/%E7%AD%86%E8%A8%98/"/>
    <category term="升學" scheme="https://chuen666666.com/tags/%E5%8D%87%E5%AD%B8/"/>
    <category term="數學" scheme="https://chuen666666.com/tags/%E6%95%B8%E5%AD%B8/"/>
    <category term="學測" scheme="https://chuen666666.com/tags/%E5%AD%B8%E6%B8%AC/"/>
    <category term="數 A" scheme="https://chuen666666.com/tags/%E6%95%B8-A/"/>
    <content>
      <![CDATA[<p>此篇筆記整理自數 A 的複習講義，僅作學習之用<br>若有誤或疑問，可以於底下留言或私訊我<br>如有侵權，請聯繫我刪除，謝謝！</p><div class="note note-success">            <p>本篇筆記公式較多，手機瀏覽易跑版<br>建議使用電腦觀看以獲得最佳閱讀體驗</p>           </div><h2 id="數與式"><a href="#數與式" class="headerlink" title="數與式"></a>數與式</h2><h3 id="雙重根號"><a href="#雙重根號" class="headerlink" title="雙重根號"></a>雙重根號</h3><ul><li>$\sqrt{a+b+2\sqrt{ab}}=\sqrt a+\sqrt b$</li><li>$\sqrt{a+b-2\sqrt{ab}}=\left|\sqrt a-\sqrt b\right|$</li></ul><h3 id="乘法公式"><a href="#乘法公式" class="headerlink" title="乘法公式"></a>乘法公式</h3><ul><li>$(a+b)^3=a^3+3a^2b+3ab^2+b^3=a^3+b^3+3ab\,(a+b)$</li><li>$(a-b)^3=a^3-3a^2b+3ab^2-b^3=a^3-b^3-3ab\,(a-b)$</li><li>$a^3+b^3=(a+b)(a^2-ab+b^2)=(a+b)^3-3ab\,(a+b)$</li><li>$a^3-b^3=(a-b)(a^2+ab+b^2)=(a-b)^3+3ab\,(a-b)$</li></ul><h3 id="分點公式"><a href="#分點公式" class="headerlink" title="分點公式"></a>分點公式</h3><ul><li>$P=\frac{na+mb}{m+n}$（乘以對面）</li></ul><img src="/img/section.png" class="" title="分點公式"><h3 id="算幾不等式"><a href="#算幾不等式" class="headerlink" title="算幾不等式"></a>算幾不等式</h3><ul><li>$\frac{a+b}{2}\ge\sqrt{ab}$（<strong>算數平均數 &ge; 幾何平均數</strong>）</li><li>會微分，此章可不學</li></ul><h2 id="多項式"><a href="#多項式" class="headerlink" title="多項式"></a>多項式</h2><h3 id="除法原理"><a href="#除法原理" class="headerlink" title="除法原理"></a>除法原理</h3><ul><li>$f(x)\div g(x)=q(x)\cdots r(x) \implies f(x)=g(x)\;q(x)+r(x)$</li></ul><h3 id="綜合除法"><a href="#綜合除法" class="headerlink" title="綜合除法"></a>綜合除法</h3><ul><li>做一次 &rArr; 得商式和餘式</li><li>做到底（連續綜合除法） &rArr; 得泰勒展開式（$(x-a)$ 的多項式）</li><li>會微分，此章可不學</li></ul><h3 id="一／二／三次函數"><a href="#一／二／三次函數" class="headerlink" title="一／二／三次函數"></a>一／二／三次函數</h3><ul><li>三次函數的廣域特徵：$y=ax^3+bx^2+cx+d \to y=ax^3$</li><li>三次函數的局部特徵：即一次近似（$y=a_3\left(x-k\right)^3+a_2\left(x-k\right)^2+a_1\left(x-k\right)+a_0 \to y=a_1\left(x-k\right)+a_0$）</li><li>其他部分微分解決</li></ul><h2 id="直線與圓"><a href="#直線與圓" class="headerlink" title="直線與圓"></a>直線與圓</h2><h3 id="斜率"><a href="#斜率" class="headerlink" title="斜率"></a>斜率</h3><ul><li>$m=\frac{\Delta y}{\Delta x}=\tan\theta\;(\theta\ne90^\circ)$</li></ul><h3 id="直線方程式"><a href="#直線方程式" class="headerlink" title="直線方程式"></a>直線方程式</h3><ul><li>點斜式：$y-y_0=m(x-x_0)$</li><li>斜截式：$y=mx+k$</li><li>截距式：當 $x$ 截距 $t$、$y$ 截距 $k$，$\frac xt+\frac yk=1\;(t,k\ne 0)$</li><li>一般式：$ax+by+c=0\;(b\ne0)$</li></ul><h3 id="解析幾何"><a href="#解析幾何" class="headerlink" title="解析幾何"></a>解析幾何</h3><ul><li>中點坐標：$M=\left(\frac{x_1+x_2}{2},\frac{y_1+y_2}{2}\right)$</li><li>兩點距離：$\sqrt{\Delta x^2+\Delta y^2}$</li><li>點到直線距離：$d(P,L)=\frac{\left|點代入\right|}{法長度}$</li><li>平行線距離：$d(L_1,L_2)=\frac{\left|常數差\right|}{法長度}$</li></ul><h3 id="四心"><a href="#四心" class="headerlink" title="四心"></a>四心</h3><ul><li>內心（Incentre）：三角平分線交點</li><li>外心（Circumcentre）：三中垂線交點</li><li>重心（Centroid）：三中線交點（中線比例為 2:1）</li><li>垂心（Orthocentre）：三高交點</li></ul><h3 id="二元一次不等式"><a href="#二元一次不等式" class="headerlink" title="二元一次不等式"></a>二元一次不等式</h3><ul><li>解等式 &rarr; 代任意數 &rarr; 看正負</li><li>格子點：$x,y$ 均為整數時</li><li>解區域：數個不等式的交集區域</li></ul><h3 id="圓方程式"><a href="#圓方程式" class="headerlink" title="圓方程式"></a>圓方程式</h3><ul><li>標準式：以 $O(h,k)$ 為圓心，$r$ 為半徑，圓方程式為 $(x-h)^2+(y-k)^2=r^2$</li><li>一般式：$x^2+y^2+dx+ey+f=0$</li><li>判別式：$D=d^2+e^2-4f$（用以判斷<strong>圓、點、無圖形</strong>）</li></ul><h3 id="點與圓"><a href="#點與圓" class="headerlink" title="點與圓"></a>點與圓</h3><p>已知圓 $C:\;(x-h)^2+(y-k)^2=r^2$ 與點 $P(x_0,y_0)$，將 $P$ 坐標代入 $C$ 方程式</p><ul><li>$值&gt;r^2$：$P$ 在圓外</li><li>$值=r^2$：$P$ 在圓上</li><li>$值&lt;r^2$：$P$ 在圓內</li></ul><p>若換以 $C:\;x^2+y^2+dx+ey+f=0$ 表示，$P$ 代入後</p><ul><li>$值&gt;0$：$P$ 在圓外</li><li>$值=0$：$P$ 在圓上</li><li>$值&lt;0$：$P$ 在圓內</li></ul><h3 id="直線與圓（推廣）"><a href="#直線與圓（推廣）" class="headerlink" title="直線與圓（推廣）"></a>直線與圓（推廣）</h3><ul><li>幾何判別法：比較直線 $L$ 與圓 $C$ 的距離 $d$ 與圓半徑 $r$ 大小（分別為<strong>相割、相切、相離</strong>）</li><li>代數判別法：直線方程式 $L$ 與圓方程式 $C$ 解聯立，得一元二次方程式，用其判別式 $D$ 判斷交點個數（分別為<strong>相割、相切、相離</strong>）</li></ul><h2 id="數列與級數"><a href="#數列與級數" class="headerlink" title="數列與級數"></a>數列與級數</h2><h3 id="等差"><a href="#等差" class="headerlink" title="等差"></a>等差</h3><ul><li>等差數列（A.P.）：$a_n=a_m+(n-m)\,d$</li><li>等差中項：前後項平均數</li><li>等差級數：$S_n=\frac{(a_1+a_n)\,n}{2}=\frac{(2\,a_1+(n-1)\,d)\,n}{2}$（梯形公式）</li></ul><h3 id="等比"><a href="#等比" class="headerlink" title="等比"></a>等比</h3><ul><li>等比數列（G.P.）：$a_n=a_m\times r^{n-m}$</li><li>等比中項：$b=\pm\sqrt{ac}$</li><li>等比級數：$S_n=\begin{cases}n\times a_1&\text{, if }r=1\\ \frac{a_1\,(1-r^n)}{1-r}&\text{, if }r\ne1\end{cases}$</li></ul><h3 id="本利和"><a href="#本利和" class="headerlink" title="本利和"></a>本利和</h3><p>本金為 $x$、期利率為 $r\%$，求第 $n$ 期本利和</p><ul><li>單利本利和：$x\left(1+r\%\cdot n\right)$</li><li>複利本利和：$x\left(1+r\%\right)^n$</li></ul><h3 id="級數求和"><a href="#級數求和" class="headerlink" title="級數求和"></a>級數求和</h3><ul><li>$1+2+3+\cdots+n=\displaystyle\sum_{i=1}^n i=\frac{n\,(n+1)}{2}$（梯形公式）</li><li>$1^2+2^2+3^2+\cdots+n^2=\displaystyle\sum_{i=1}^n i^2=\frac{n\,(n+1)(2n+1)}{6}$</li><li>$1^3+2^3+3^3+\cdots+n^3=\displaystyle\sum_{i=1}^n i^3=\left(\frac{n\,\left(n+1\right)}{2}\right)^2$</li></ul><h3 id="數學歸納法（M-I-）"><a href="#數學歸納法（M-I-）" class="headerlink" title="數學歸納法（M.I.）"></a>數學歸納法（M.I.）</h3><ol><li>B.S.：當 $n=1$ 時，原式成立</li><li>I.H.：設 $n=k$ 時，原式成立</li><li>I.S.：則 $n=k+1$ 時，原式成立</li><li>Q.E.D. by M.I.</li></ol><h2 id="排列組合"><a href="#排列組合" class="headerlink" title="排列組合"></a>排列組合</h2><h3 id="笛摩根定律"><a href="#笛摩根定律" class="headerlink" title="笛摩根定律"></a>笛摩根定律</h3><ul><li>$\left(A \cup B\right)’=A’\cap B’$</li><li>$\left(A \cap B\right)’=A’\cup B’$</li></ul><h3 id="取捨原理"><a href="#取捨原理" class="headerlink" title="取捨原理"></a>取捨原理</h3><ul><li>$n\left( A\cup B\right)=n\,(A)+n\,(B)-n\left(A\cap B\right)$</li><li>$n\left(A \cup B \cup C\right)=n\,(A)+n\,(B)+n\,(C)-n\left(A \cap B\right)-n\left(B \cap C\right)-n\left(A \cap C\right)+n\left(A \cap B \cap C\right)$</li></ul><h3 id="計數原理"><a href="#計數原理" class="headerlink" title="計數原理"></a>計數原理</h3><ul><li>乘法原理：兩步驟分別有 $m$、$n$ 種方法，則完成該事件有 $m \times n$ 種方法</li><li>加法原理：兩種方案分別有 $p$、$q$ 種方法，則完成該事件有 $p+q$ 種方法</li></ul><h3 id="排列"><a href="#排列" class="headerlink" title="排列"></a>排列</h3><ul><li>完全相異物排列：$n$ 個相異物取 $r$ 個排，有 $P_r^n$ 種排法</li><li>限制兩物相鄰：視為同一物排完後，再取兩物互換位排法</li><li>限制兩物不相鄰：排完其他物後，再插空隙</li><li>其他位置限制：取捨原理計算排法</li><li>同物排列：$k$ 類物品，且第 $1$ 類有 $n_1$ 個同物、第 $2$ 類有 $n_2$ 個同物、……、第 $k$ 類有 $n_k$ 個同物，共有 $n$ 個物品，則共有 $\frac{n!}{n_1! \times n_2! \times n_3! \times \cdots \times n_k!}$ 種</li><li>重複排列：從 $n$ 種不同物中選出 $r$ 個排列（可重複），則每個位置均有 $n$ 種選擇，故有 $n^r$ 種排法</li></ul><h3 id="組合"><a href="#組合" class="headerlink" title="組合"></a>組合</h3><ul><li>從 $n$ 個完全相異物中，不重複的取 $r$ 個（$r \le n$），且不計排列次序，則有 $C_r^n=\frac{P_r^n}{r!}$ 種方法</li><li>$C_r^n=C_{n-r}^n$</li><li>巴斯卡定理：$n$ 個相異物中取 $r$ 個，若討論物品 $a$ 是否被選 &rarr; 分為<strong>有被選</strong>和<strong>沒被選</strong>兩種情形討論，再相加</li><li>分堆問題：$\frac{每堆分別處理後再相乘}{同堆數!}$</li></ul><h3 id="二項式定理"><a href="#二項式定理" class="headerlink" title="二項式定理"></a>二項式定理</h3><ul><li>$(x+y)^n=C_0^n\,x^n\,y^0+C_1^n\,x^{n-1}\,y^1+C_2^n\,x^{n-2}\,y^2+\cdots+C_n^n\,x^0\,y^n$</li></ul><h3 id="組合級數"><a href="#組合級數" class="headerlink" title="組合級數"></a>組合級數</h3><p>令 $f(x)=(1+x)^n=C_0^n+C_1^n\,x^1+C_2^n\,x^2+\cdots+C_n^n\,x^n$</p><ul><li>$C_0^n+C_1^n+C_2^n+\cdots+C_n^n=f(1)=2^n$</li><li>$C_0^n-C_1^n+C_2^n-C_3^n+\cdots=f(-1)=0$</li><li>$C_0^n+C_2^n+C_4^n+C_6^n+\cdots=\frac{f(1)+f(-1)}{2}=2^{n-1}$</li><li>$C_1^n+C_3^n+C_5^n+C_7^n+\cdots=\frac{f(1)-f(-1)}{2}$</li></ul><h2 id="機率與期望值"><a href="#機率與期望值" class="headerlink" title="機率與期望值"></a>機率與期望值</h2><h3 id="古典機率"><a href="#古典機率" class="headerlink" title="古典機率"></a>古典機率</h3><ul><li>$P(A)=\frac{n(A)}{n(S)}=\frac{事件 A 的樣本點個數}{樣本空間 S 的樣本點個數}$</li><li>互斥事件：$P\left(A \cap B\right)=0$</li></ul><h3 id="期望值"><a href="#期望值" class="headerlink" title="期望值"></a>期望值</h3><ul><li>$E=x_1\,P_1+x_2\,P_2+\cdots x_n\,P_n$（想像<strong>單個樣本點占的比例</strong>）</li></ul><h3 id="條件機率"><a href="#條件機率" class="headerlink" title="條件機率"></a>條件機率</h3><ul><li>在 $A$ 事件下（$P(A)\ne0$），$B$ 發生的機率（條件機率）為 $P(B\mid A)=\frac{P\left(A \cap B\right)}{P(A)}=\frac{n\left(A \cap B\right)}{n(A)}$</li><li>$P\left(A \cap B\right)=P(A)\, P(B\mid A)$</li><li>$P\left(A \cap B \cap C\right)=P(A)\, P(B\mid A)\, P\left(C\mid A\cap B\right)$</li></ul><h3 id="獨立事件"><a href="#獨立事件" class="headerlink" title="獨立事件"></a>獨立事件</h3><ul><li>$A$、$B$ 互不影響，即 $P\left(B\mid A\right)=P(B)$</li><li>二獨立事件滿足 $P\left(A \cap B\right)=P(A)\,P(B)$</li><li>三獨立事件滿足<ul><li>$P\left(A \cap B\right)=P(A)\,P(B)$</li><li>$P\left(B \cap C\right)=P(B)\,P(C)$</li><li>$P\left(A \cap C\right)=P(A)\,P(C)$</li><li>$P\left(A \cap B \cap C\right)=P(A)\,P(B)\,P(C)$</li></ul></li></ul><h2 id="數據分析"><a href="#數據分析" class="headerlink" title="數據分析"></a>數據分析</h2><h3 id="集中趨勢"><a href="#集中趨勢" class="headerlink" title="集中趨勢"></a>集中趨勢</h3><ul><li>算術平均數：$\mu=\frac1n\left(x_1+x_2+\cdots+x_n\right)$</li><li>加權平均數：$w=\frac{w_1x_1+w_2x_2+\cdots+w_nx_n}{w_1+w_2+\cdots+w_n}$</li><li>幾何平均數：$G=\sqrt[n]{x_1\,x_2\,\cdots x\,_n}$</li><li>中位數：排列後，中間的數（偶數項則取中間兩數平均）</li><li>眾數：出現最多次的數（可能不唯一）</li><li>百分位：將 $n$ 個數據由小到大排為 $a_1,a_2,\cdots,a_n$<ul><li>當 $m=n\times\frac{k}{100}$ 為整數，第 $k$ 百分位 $P_k=\frac{a_m+a_{m+1}}{2}$</li><li>當 $m=n\times\frac{k}{100}$ 不為整數，且 $l&lt;n\times\frac{k}{100}&lt;l+1$（$l$ 為整數），第 $k$ 百分位 $P_k=a_{l+1}$</li></ul></li><li>四分位數：$Q_1=P_{25},\;Q_2=P{50},\;Q_3=P_{75}$</li></ul><h3 id="分散趨勢"><a href="#分散趨勢" class="headerlink" title="分散趨勢"></a>分散趨勢</h3><ul><li>全距：$R=\max-\min$</li><li>標準差：$\sigma=\sqrt{\frac{\left(x_1-\mu\right)^2+\left(x_2-\mu\right)^2+\cdots+\left(x_n-\mu\right)^2}{n}}=\sqrt{\frac{x_1^2+x_2^2+\cdots+x_n^2}{n}-\mu^2}$</li><li>變異數：$\sigma^2$</li></ul><h3 id="數據的伸縮平移"><a href="#數據的伸縮平移" class="headerlink" title="數據的伸縮平移"></a>數據的伸縮平移</h3><p>設有 $n$ 個數據 $x_1,x_2,\cdots,x_n$，其算數平均數為 $\mu_x$，標準差為 $\sigma_x$</p><p>令 $y_i=ax_i+b\left(i=1,2,\cdots,n;\;a\ne0\right)$</p><ul><li>$\mu_y=a\mu_x+b$（平均值一起變）</li><li>$\sigma_y=\left|a\right|\times\sigma_x$（標準差伸縮斜率倍）</li></ul><h3 id="標準化"><a href="#標準化" class="headerlink" title="標準化"></a>標準化</h3><ul><li>$x_i’=\frac{x_i-\mu}{\sigma}$</li><li>$\mu’=0;\;\sigma’=1$</li></ul><h2 id="二維數據分析"><a href="#二維數據分析" class="headerlink" title="二維數據分析"></a>二維數據分析</h2><h3 id="相關係數"><a href="#相關係數" class="headerlink" title="相關係數"></a>相關係數</h3><ul><li>$S_{xy}=(x_1-\mu_x)(y_1-\mu_y)+(x_2-\mu_x)(y_2-\mu_y)+\cdots+(x_n-\mu_x)(y_n-\mu_y)$</li><li>$S_{xx}=(x_1-\mu_x)^2+(x_2-\mu_x)^2+\cdots+(x_n-\mu_x)^2$</li><li>$S_{yy}=(y_1-\mu_y)^2+(y_2-\mu_y)^2+\cdots+(y_n-\mu_y)^2$</li><li>相關係數：$r=\frac{x_1’ y_1’+x_2’ y_2’+\cdots+x_n’ y_n’}{n}=\frac{S_{xy}}{\sqrt{S_{xx}}\sqrt{S_{yy}}}$（內積）</li><li>零相關：資料排列呈水平線、鉛直線、對稱，$r=0$</li><li>兩組數據伸縮平移：只影響 $r$ 的正負號（係數同號則不變、異號則加負號）</li></ul><h3 id="最小平方法與迴歸直線"><a href="#最小平方法與迴歸直線" class="headerlink" title="最小平方法與迴歸直線"></a>最小平方法與迴歸直線</h3><ul><li>找出直線 $L$，使其距離每個點的距離平方和最小，$L$ 即迴歸直線（最佳直線）</li><li>迴歸直線 VS 未標準化數據<ul><li>$L$ 必過 $(\mu_x,\mu_y)$</li><li>$m=r\times\frac{\sigma_y}{\sigma_x}=\frac{S_{xy}}{S_{xx}}$</li><li>$\implies L:\;y-\mu_y=m\,(x-\mu_x)$</li></ul></li><li>迴歸直線 VS 已標準化數據<ul><li>$L$ 必過 $(0,0)$</li><li>$m’=r$</li><li>$\implies L:\;y’=rx’$</li></ul></li></ul><h2 id="指數與對數"><a href="#指數與對數" class="headerlink" title="指數與對數"></a>指數與對數</h2><h3 id="指數律"><a href="#指數律" class="headerlink" title="指數律"></a>指數律</h3><ul><li>整數指數：$a\ne0,n\in\mathbb N$，則 $a^0=1$ 且 $a^{-n}=\frac{1}{a^n}$</li><li>有理指數：$a&gt;0,m\in\mathbb N$ 且 $n\ge2$，則 $a^\frac{1}{n}=\sqrt[n]a$</li><li>指數律（實數）<ul><li>$a^m\cdot a^n=a^{m+n}$</li><li>$\frac{a^m}{a^n}=a^{m-n}$</li><li>$\left(a^m\right)^n=a^{mn}$</li><li>$\left(ab\right)^n=a^n\cdot b^n$</li><li>$\left(\frac ab\right)^n=\frac{a^n}{b^n}$</li></ul></li></ul><h3 id="常用對數"><a href="#常用對數" class="headerlink" title="常用對數"></a>常用對數</h3><ul><li>$10^t=k \iff \log_{10}k=t$</li><li>$10^{\log k}=10^t=k,\log 10^t=\log k=t$</li></ul><h3 id="對數律"><a href="#對數律" class="headerlink" title="對數律"></a>對數律</h3><ul><li>$a&gt;0,\;a\ne1,\;b&gt;a$，則方程式 $a^x=b$ 有唯一實根 $x=\log_ab$</li><li>$a^t=b \iff t=\log_ab$</li><li>$b=a^{\log_ab}$</li><li>$b=\log_aa^b$</li></ul><h2 id="三角比"><a href="#三角比" class="headerlink" title="三角比"></a>三角比</h2><h3 id="三角函數值"><a href="#三角函數值" class="headerlink" title="三角函數值"></a>三角函數值</h3><ul><li>$\sin\theta=\frac{對}{斜},\;\cos\theta=\frac{鄰}{斜},\;\tan\theta=\frac{對}{鄰}$（口訣：<strong>對斜鄰斜對鄰</strong>）</li><li>求常見三角比：分母都是 $2$，分子為 $1,\sqrt2,\sqrt3$，畫單位圓看大小（單位圓上任一點 $P=(\cos\theta,\sin\theta)$）</li></ul><h3 id="基本關係式"><a href="#基本關係式" class="headerlink" title="基本關係式"></a>基本關係式</h3><ul><li>平方：$\sin^2\theta+\cos^2\theta=1$</li><li>商數：$\tan\theta=\frac{\sin\theta}{\cos\theta}$</li><li>餘角：$\sin(90^\circ-\theta)=\cos\theta;\;\cos(90^\circ-\theta)=\sin\theta$</li></ul><h3 id="廣義角"><a href="#廣義角" class="headerlink" title="廣義角"></a>廣義角</h3><ul><li>任一點坐標 $P(x,y)=(r\cos\theta,r\sin\theta)$</li><li>加／減角度 &rArr; <strong>奇變偶不變，正負看象限</strong></li></ul><h3 id="極坐標"><a href="#極坐標" class="headerlink" title="極坐標"></a>極坐標</h3><ul><li>若 $P$ 點到原點距離 $\overline{OP}=r$，且標準位置角為 $\theta$，則 $P=(x,y)=[r,\theta]$</li></ul><h3 id="正餘弦定理"><a href="#正餘弦定理" class="headerlink" title="正餘弦定理"></a>正餘弦定理</h3><ul><li>$\frac{a}{\sin A}=\frac{b}{\sin B}=\frac{c}{\sin C}=2R$</li><li>$a^2=b^2+c^2-2ab\cos A$（畢氏定理 + 修正值）</li><li>$\cos A=\frac{b^2+c^2-a^2}{2bc}$</li></ul><h3 id="面積公式"><a href="#面積公式" class="headerlink" title="面積公式"></a>面積公式</h3><p>設 $s=\frac{a+b+c}{2}$（半周長）</p><ul><li>$[\triangle ABC]=\frac12bc\sin A=\frac12ac\sin B=\frac12ab\sin C$</li><li>$[\triangle ABC]=\frac{abc}{4R}$</li><li>$[\triangle ABC]=rs$</li><li>$[\triangle ABC]=\sqrt{s(s-a)(s-b)(s-c)}$（海龍公式）</li></ul><blockquote><p>此章內容常見於考卷尾的參考公式</p></blockquote><h2 id="三角函數"><a href="#三角函數" class="headerlink" title="三角函數"></a>三角函數</h2><h3 id="弳度"><a href="#弳度" class="headerlink" title="弳度"></a>弳度</h3><ul><li>半徑為 $r$，弧長為 $s$ 的圓中，弧對應的圓心角為 $\theta=\frac sr$</li><li>$180^\circ=\pi$</li><li>$1^\circ=\frac{\pi}{180}$</li><li>$1=(\frac{180}{\pi})^\circ\approx57.3^\circ$</li></ul><h3 id="扇形"><a href="#扇形" class="headerlink" title="扇形"></a>扇形</h3><p>扇形半徑為 $r$、圓心角為 $\theta$ 弳</p><ul><li>弧長：$s=r\theta$</li><li>面積：$A=\frac12r^2\theta$</li></ul><h3 id="和差角"><a href="#和差角" class="headerlink" title="和差角"></a>和差角</h3><ul><li>$\sin(\alpha+\beta)=\sin\alpha\cdot\cos\beta+\cos\alpha\cdot\sin\beta$（sin co + co sin）</li><li>$\sin(\alpha-\beta)=\sin\alpha\cdot\cos\beta-\cos\alpha\cdot\sin\beta$（sin co - co sin）</li><li>$\cos(\alpha+\beta)=\cos\alpha\cdot\cos\beta-\sin\alpha\cdot\sin\beta$（co co - sin sin）</li><li>$\cos(\alpha-\beta)=\cos\alpha\cdot\cos\beta+\sin\alpha\cdot\sin\beta$（co co + sin sin）</li><li>$\tan(\alpha+\beta)=\frac{\tan\alpha+\tan\beta}{1-\tan\alpha\cdot\tan\beta}$</li><li>$\tan(\alpha-\beta)=\frac{\tan\alpha-\tan\beta}{1+\tan\alpha\cdot\tan\beta}$</li></ul><h3 id="倍角"><a href="#倍角" class="headerlink" title="倍角"></a>倍角</h3><ul><li>$\sin2\theta=2\sin\theta\cos\theta$</li><li>$\cos2\theta=\cos^2\theta-\sin^2\theta=1-2\sin^2\theta=2\cos^2\theta-1$</li><li>$\tan2\theta=\frac{2\tan\theta}{1-\tan^2\theta}$</li><li>$\sin3\theta=3\sin\theta-4\sin^3\theta$</li><li>$\cos3\theta=4\cos^3\theta-3\cos\theta$</li></ul><h3 id="半角"><a href="#半角" class="headerlink" title="半角"></a>半角</h3><p>公式的正負看 $\frac\theta2$ 象限決定</p><ul><li>$\sin\frac\theta2=\pm\sqrt{\frac{1-\cos\theta}{2}}$</li><li>$\cos\frac\theta2=\pm\sqrt{\frac{1+\cos\theta}{2}}$</li><li>$\tan\frac\theta2=\pm\sqrt{\frac{1-\cos\theta}{1+\cos\theta}}$</li></ul><h3 id="疊合"><a href="#疊合" class="headerlink" title="疊合"></a>疊合</h3><ul><li>$y=a\sin x+b\cos x=\sqrt{a^2+b^2}\,(\sin x\cos\theta+\cos x\sin\theta)=\sqrt{a^2+b^2}\sin(x+\theta)$（其中 $\cos\theta=\frac{a}{\sqrt{a^2+b^2}},\;\sin\theta=\frac{b}{\sqrt{a^2+b^2}}$）</li><li>最值：不限 $x$ 範圍時，$y$ 的最值為 $\pm\sqrt{a^2+b^2}$</li></ul><h2 id="平面向量"><a href="#平面向量" class="headerlink" title="平面向量"></a>平面向量</h2><h3 id="向量的運算"><a href="#向量的運算" class="headerlink" title="向量的運算"></a>向量的運算</h3><ul><li>三角不等式（恆成立）：$\left|\vec a\right|+\left|\vec b\right|\ge\left|\vec a+\vec b\right|$（等號成立於同方向或其一為零向量）</li></ul><h3 id="重心性質"><a href="#重心性質" class="headerlink" title="重心性質"></a>重心性質</h3><p>若 $G$ 為 $\triangle ABC$ 的重心</p><ul><li>$\vec{AG}=\frac13\vec{AB}+\frac13\vec{AC}$</li><li>$\vec{GA}+\vec{GB}+\vec{GC}=\vec0$</li><li>$\vec{OG}=\frac13(\vec{OA}+\vec{OB}+\vec{OC})$，其中 $O$ 為任意點</li></ul><h3 id="內積"><a href="#內積" class="headerlink" title="內積"></a>內積</h3><ul><li>$\vec a\cdot\vec b=\left|\vec a\right|\left|\vec b\right|\cos\theta=a_1\,b_1+a_2\,b_2$</li><li>性質：<ul><li>$\vec a\cdot\vec a=\left|\vec a\right|^2$</li><li>交換律：$\vec a\cdot\vec b=\vec b\cdot\vec a$</li><li>分配律：$\vec a\cdot(\vec b+\vec c)=\vec a\cdot\vec b+\vec a\cdot\vec c$</li><li>乘法公式：<ul><li>$\left|\vec a+\vec b\right|^2=\left|\vec a\right|^2+2\,\vec a\cdot\vec b+\left|\vec b\right|^2$</li><li>$(\vec a+\vec b)\cdot(\vec a-\vec b)=\left|\vec a\right|^2-\left|\vec b\right|^2$</li></ul></li></ul></li></ul><h3 id="內積的應用"><a href="#內積的應用" class="headerlink" title="內積的應用"></a>內積的應用</h3><ul><li>求兩向量長度：用公式 $\left|向量\right|^2=自己的內積$</li><li>求兩向量夾角：$\cos\theta=\frac{\vec a\cdot\vec b}{\left|\vec a\right|\left|\vec b\right|}\;(0^\circ\le\theta\le180^\circ)$</li><li>求兩線夾角：$\cos\theta=\frac{\vec{n_1}\cdot\vec{n_2}}{\left|\vec{n_1}\right|\left|\vec{n_2}\right|},\;\cos(180^\circ-\theta)=-\cos\theta$</li></ul><h3 id="正射影"><a href="#正射影" class="headerlink" title="正射影"></a>正射影</h3><ul><li>$\vec b$ 在 $\vec a$ 上的正射影 $\vec c=\left(\frac{\vec a\cdot\vec b}{\left|\vec a\right|^2}\right)\vec a$</li><li>$\vec b$ 在 $\vec a$ 上的正射影長 $\left|\vec c\right|=\frac{\left|\vec a\cdot\vec b\right|}{\left|\vec a\right|}$</li></ul><h3 id="柯西不等式"><a href="#柯西不等式" class="headerlink" title="柯西不等式"></a>柯西不等式</h3><ul><li>不等式 $\left|\vec a\right|\left|\vec b\right|\ge\left|\vec a\cdot\vec b\right|$ 恆成立，且等號成立於 $\vec a\parallel\vec b\iff\vec a=t\vec b\;(t\in\mathbb R)$</li><li>不等式 $(a_1^2+a_2^2)(b_1^2+b_2^2)\ge(a_1\,b_1+a_2\,b_2)^2$ 恆成立，且等號成立於 $a_1=t\,b_1,a_2=t\,b_2\;(t\in\mathbb R)$（<strong>方和積 &ge; 積和方</strong>）</li></ul><h3 id="二階行列式"><a href="#二階行列式" class="headerlink" title="二階行列式"></a>二階行列式</h3><ul><li>$\begin{vmatrix}a&b \\ c&d \\ \end{vmatrix}=ad-bc$</li><li>由 $\vec{AB}=(p,q),\;\vec{AC}=(r,s)$ 決定的三角形面積 $[\triangle ABC]=\frac12\sqrt{\left|\vec{AB}\right|^2\left|\vec{AC}\right|^2-\left(\vec{AB}\cdot\vec{AC}\right)^2}=\frac12\begin{vmatrix}p&q \\ r&s \\ \end{vmatrix}$</li></ul><h3 id="行列式性質"><a href="#行列式性質" class="headerlink" title="行列式性質"></a>行列式性質</h3><ul><li>行列對調，值不變</li><li>兩行（列）對調，差負號</li><li>某行（列）可提出 $k$ 倍</li><li>某行（列）可分開</li><li>某行（列）成比例，其值為 $0$</li><li>某行（列）乘 $k$ 倍加到另一行（列），值不變</li></ul><h3 id="克拉瑪公式"><a href="#克拉瑪公式" class="headerlink" title="克拉瑪公式"></a>克拉瑪公式</h3><p>給定 $\begin{cases}ax+by=p \\ cx+dy=q\end{cases}$</p><p>令 $\Delta=\begin{vmatrix} a&b \\ c&d \\ \end{vmatrix},\;\Delta_x=\begin{vmatrix} p&b \\ q&d \\ \end{vmatrix},\;\Delta_y=\begin{vmatrix} a&p \\ c&q \\ \end{vmatrix}$</p><ul><li>恰一解：$\Delta\ne0,\;x=\frac{\Delta_x}{\Delta},\;y=\frac{\Delta_y}{\Delta}$</li><li>無限解：$\Delta=\Delta_x=\Delta_y=0$</li><li>無解：$\Delta=0$ 且 $\Delta_x,\Delta_y$ 有一不為 $0$</li></ul><h2 id="空間向量"><a href="#空間向量" class="headerlink" title="空間向量"></a>空間向量</h2><h3 id="二面角"><a href="#二面角" class="headerlink" title="二面角"></a>二面角</h3><ul><li>面上各取一條與交線垂直的向量 &rarr; 算兩向量夾角 $\theta,\;180^\circ-\theta$</li></ul><iframe src="https://www.geogebra.org/3d/knq2tbne?embed" width="800" height="600" loading="lazy" allowfullscreen style="border: 1px solid #e4e4e4;border-radius: 4px;" frameborder="0"></iframe><h3 id="三垂線定理"><a href="#三垂線定理" class="headerlink" title="三垂線定理"></a>三垂線定理</h3><ul><li>$\overline{AB}$ 垂直平面 $E$ 於 $B$ 點，直線 $L$ 在平面 $E$ 上，若 $\overline{BC}$ 垂直 $L$ 於 $C$，則 $\overline{AC}$ 與 $L$ 垂直</li></ul><iframe src="https://www.geogebra.org/3d/h8b28duu?embed" width="800" height="600" loading="lazy" allowfullscreen style="border: 1px solid #e4e4e4;border-radius: 4px;" frameborder="0"></iframe><h3 id="空間向量（推廣）"><a href="#空間向量（推廣）" class="headerlink" title="空間向量（推廣）"></a>空間向量（推廣）</h3><ul><li>$\left|\vec{AB}\right|=\sqrt{\Delta_x^2+\Delta_y^2+\Delta_z^2}$</li></ul><h3 id="空間向量的內積"><a href="#空間向量的內積" class="headerlink" title="空間向量的內積"></a>空間向量的內積</h3><ul><li>$\vec a\cdot\vec b=\left|\vec a\right|\left|\vec b\right|\cos\theta=a_1\,b_1+a_2\,b_2+a_3\,b_3$</li><li>$\vec a\perp\vec b\iff\vec a\cdot\vec b=0$</li><li>特性皆與二維向量相同</li><li>正射影與二維向量相同</li></ul><h3 id="柯西不等式（推廣）"><a href="#柯西不等式（推廣）" class="headerlink" title="柯西不等式（推廣）"></a>柯西不等式（推廣）</h3><ul><li>$\left|\vec a\right|\left|\vec b\right|\ge\left|\vec a\cdot\vec b\right|$，等號成立於 $\vec a\parallel\vec b$</li><li>推廣方式同二維（<strong>方和積 &ge; 積和方</strong>）</li></ul><h3 id="外積"><a href="#外積" class="headerlink" title="外積"></a>外積</h3><ul><li>$\vec c=\vec a\times\vec b=\left(\begin{vmatrix}a_2&a_3\\ b_2&b_3\\ \end{vmatrix},\begin{vmatrix}a_3&a_1\\ b_3&b_1\\ \end{vmatrix},\begin{vmatrix}a_1&a_2\\ b_1&b_2\\ \end{vmatrix}\right)$（抄兩次，去頭尾，行列式）</li><li>$\vec c$ 為 $\vec a$ 與 $\vec b$ 的公垂向量</li><li>性質：<ul><li>$\vec a\times\vec b=-\left(\vec b\times\vec a\right)$</li><li>若 $\vec n\perp\vec a$ 且 $\vec n\perp\vec b$，則 $\vec n\parallel\left(\vec a\times\vec b\right)$</li><li>$\left|\vec a\times\vec b\right|=\left|\vec a\right|\left|\vec b\right|\sin\theta$</li></ul></li></ul><h3 id="空間三角形面積"><a href="#空間三角形面積" class="headerlink" title="空間三角形面積"></a>空間三角形面積</h3><ul><li>三角形 $[\triangle ABC]=\frac12\left|\vec{AB}\right|\left|\vec{AC}\right|\sin\theta=\frac12\left|\vec{AB}\times\vec{AC}\right|$</li><li>平行四邊形 $[\text{▱}ABCD]=\left|\vec{AB}\right|\left|\vec{AC}\right|\sin\theta=\left|\vec{AB}\times\vec{AC}\right|$</li></ul><h3 id="三階行列式"><a href="#三階行列式" class="headerlink" title="三階行列式"></a>三階行列式</h3><ul><li>$\begin{vmatrix}a&b&c\\ d&e&f\\ g&h&i\end{vmatrix}=(aei+bfg+cdh)-(ceg+bdi+afh)$ （左上右下 - 右上左下）</li><li>性質與二階相同</li><li><p>降階：</p>  $$  \begin{aligned}  \begin{vmatrix}a&b&c\\d&e&f\\g&h&i\end{vmatrix}  &= a\begin{vmatrix}e&f\\h&i\end{vmatrix}-b\begin{vmatrix}d&f\\g&i\end{vmatrix}+c\begin{vmatrix}d&e\\g&h\end{vmatrix} && \text{（第一列降階展開）} \\  &= -d\begin{vmatrix}b&c\\h&i\end{vmatrix}+e\begin{vmatrix}a&c\\g&i\end{vmatrix}-f\begin{vmatrix}a&b\\g&h\end{vmatrix} && \text{（第二列降階展開）} \\  &= a\begin{vmatrix}e&f\\h&i\end{vmatrix}-d\begin{vmatrix}b&c\\h&i\end{vmatrix}+g\begin{vmatrix}b&c\\e&f\end{vmatrix} && \text{（第一行降階展開）}  \end{aligned}  $$  </li></ul><h3 id="空間體積公式"><a href="#空間體積公式" class="headerlink" title="空間體積公式"></a>空間體積公式</h3><ul><li>平行六面體 $V=\left|\left(\vec a\times\vec b\right)\cdot\vec c\right|=\begin{vmatrix}a_1&a_2&a_3\\ b_1&b_2&b_3\\ c_1&c_2&c_3\end{vmatrix}$</li><li>四面體 $V’=\frac16V$</li><li>$\vec a,\vec b,\vec c\text{ 共平面}\iff V=0$</li></ul><h2 id="空間中的平面與直線"><a href="#空間中的平面與直線" class="headerlink" title="空間中的平面與直線"></a>空間中的平面與直線</h2><h3 id="平面"><a href="#平面" class="headerlink" title="平面"></a>平面</h3><ul><li>一般式：$a\,(x-x_0)+b\,(y-y_0)+c\,(z-z_0)=0\implies ax+by+cz=d$，其中 $\vec n=(a,b,c)$</li><li>截距式：若 $x,y,z$ 截距分別為 $a,b,c$，則 $E:\;\frac xa+\frac yb+\frac zc=1$，其中 $\vec n=\left(\frac1a,\frac1b,\frac1c\right)$；平面與三軸圍成的四面體 $[OABC]=\frac16\left|abc\right|$</li></ul><h3 id="兩平面夾角"><a href="#兩平面夾角" class="headerlink" title="兩平面夾角"></a>兩平面夾角</h3><ul><li>求出兩平面法向量 $\vec{n_1},\vec{n_2}$，再用 $\cos\theta=\frac{\vec{n_1}\cdot\vec{n_2}}{\left|\vec{n_1}\right|\left|\vec{n_2}\right|},\;\cos(180^\circ-\theta)=-\cos\theta$</li></ul><h3 id="距離"><a href="#距離" class="headerlink" title="距離"></a>距離</h3><ul><li>點到平面：$d(A,E)=\frac{\left|點代入\right|}{法長度}$</li><li>兩平行面：$d(E_1,E_2)=\frac{\left|常數差\right|}{法長度}$</li></ul><h3 id="空間中的直線"><a href="#空間中的直線" class="headerlink" title="空間中的直線"></a>空間中的直線</h3><ul><li>比例式（對稱比例式）：若 $L$ 過點 $A(x_0,y_0,z_0)$，方向向量 $\vec v=(l,m,n)$<ul><li>若 $lmn\ne0,\;L:\;\frac{x-x_0}{l}=\frac{y-y_0}{m}=\frac{z-z_0}{n}$</li><li>若 $\vec v$ 分量有 $0$，如 $\vec v=(l,m,0),\;L:\;\frac{x-x_0}{l}=\frac{y-y_0}{m},\,y=y_0$</li></ul></li><li>參數式：$L:\;\begin{cases}x=x_0+lt\\ y=y_0+mt\\ z=z_0+nt\end{cases}\;,t\in\mathbb R$</li><li>兩面式：若兩平面相交於 $L,\;L:\;\begin{cases}a_1\,x+b_1\,y+c_1\,z=d_1\\ a_2\,x+b_2\,y+c_2\,z=d_2\end{cases}$</li></ul><h2 id="矩陣"><a href="#矩陣" class="headerlink" title="矩陣"></a>矩陣</h2><h3 id="高斯消去法"><a href="#高斯消去法" class="headerlink" title="高斯消去法"></a>高斯消去法</h3><ul><li>增廣矩陣：解聯立時，提出所有係數，放到矩陣中（常數項在等號右側）</li><li>矩陣列運算<ul><li>任二列可互換，值不變</li><li>某列乘 $t$ 倍加到另一列，值不變</li><li>某列乘非 $0$ 的數，值不變</li></ul></li><li>高斯消去法：用列運算將增廣矩陣整理成 $\left[\begin{array}{ccc|c}a_1&b_1&c_1&d_1 \\ 0&a_2&b_2&c_2 \\ 0&0&c_3&d_3\end{array}\right]$</li></ul><h3 id="矩陣運算"><a href="#矩陣運算" class="headerlink" title="矩陣運算"></a>矩陣運算</h3><p>設矩陣 $A,B,C$ 為同階矩陣，$r\in\mathbb R$</p><ul><li>$A+B=B+A$</li><li>$(A+B)+C=A+(B+C)$</li><li>$r(A+B)=rA+rB$</li><li>若 $A$ 為 $n$ 階方陣，則 $\det(rA)=r^n\det(A)$（$\det(A)$ 表示 $A$ 的行列式值）</li></ul><h3 id="矩陣乘法"><a href="#矩陣乘法" class="headerlink" title="矩陣乘法"></a>矩陣乘法</h3><ul><li>$\renewcommand{\arraystretch}{1.2}\left[\begin{array}{cc} a & b \\ \hline c & d \end{array}\right]\left[\begin{array}{c|c} p & q \\ r & s \end{array}\right]= \begin{bmatrix} ap+br & aq+bs \\ cp+dr & cq+ds \end{bmatrix}$</li><li>單位方陣 $I$：左上到右下對角線皆 $1$，其餘皆 $0$</li><li>性質：<ul><li>結合律<ul><li>$(AB)C=A(BC)$</li><li>$(rA)(sB)=rs(AB)\;(r,s\in\mathbb R)$</li></ul></li><li>分配律<ul><li>$A(B+C)=AB+AC$</li><li>$(A+B)C=AC+BC$</li></ul></li><li>無交換律：$AB=BA$ 不一定成立</li></ul></li></ul><h3 id="反方陣"><a href="#反方陣" class="headerlink" title="反方陣"></a>反方陣</h3><ul><li>$AB=BA=I_n\implies B=A^{-1},\;A=B^{-1}$</li><li>$A^{-1}=\frac{1}{\det A}\begin{bmatrix}d&-b\\ -c&a\end{bmatrix}\;(\text{if}\det A=0,\,A^{-1}\,\nexists)$</li></ul><h3 id="轉移矩陣"><a href="#轉移矩陣" class="headerlink" title="轉移矩陣"></a>轉移矩陣</h3><ul><li>條件：<ul><li>每個元都是非負實數</li><li>每行之和皆為 $1$</li></ul></li><li>性質：<ul><li>轉移矩陣相乘也是轉移矩陣（$AB,BA,A^2,B^2$ 都是轉移矩陣）</li><li>求平均後仍是轉移矩陣（$\frac12(A+B),\frac12(A^2+B^2)$ 也是轉移矩陣）</li><li>轉移矩陣相減可能產生負元，故不一定是轉移矩陣（$\frac12(3A-B),\frac12(4A^2-2B^2)$ 不一定是轉移矩陣）</li></ul></li><li>機率矩陣：$P=\begin{bmatrix}x_1\\ x_2\end{bmatrix}$ 滿足<ul><li>$0\le x_1,x_2\le1$</li><li>$x_1+x_2=1$</li></ul></li><li>馬可夫鏈：初始狀態機率為 $P_0$，狀態轉移的機率寫成轉移矩陣 $M$，則 $P_n=MP_{n-1}$；若 $MP=P$，則此時稱 $P$ 為穩定狀態</li></ul><h3 id="平面上的線性變換"><a href="#平面上的線性變換" class="headerlink" title="平面上的線性變換"></a>平面上的線性變換</h3><ul><li>坐標平面上任一點 $P(x,y)$ 經 $A=\begin{bmatrix}a&b\\ c&d\end{bmatrix}$ 線性變換：$\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}a&b\\ c&d\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}$</li><li>圖形經線性變換後，$新圖面積=\left|\det A\right|\cdot 原圖面積$</li><li>常見的線性變換：<ul><li>伸縮矩陣：$\begin{bmatrix}h&0\\ 0&k\end{bmatrix}$（$x$ 伸縮 $h$ 倍、$y$ 伸縮 $k$ 倍）</li><li>旋轉矩陣：$\begin{bmatrix}\cos\theta&-\sin\theta\\ \sin\theta&\cos\theta\end{bmatrix}$</li><li>鏡射矩陣：$\begin{bmatrix}\cos2\theta&\sin2\theta\\ \sin2\theta&-\cos2\theta\end{bmatrix}$</li><li>水平推移矩陣：$\begin{bmatrix}1&h\\ 0&1\end{bmatrix}$（沿 $x$ 軸方向推移 $y$ 的 $h$ 倍）</li><li>鉛直推移矩陣：$\begin{bmatrix}1&0\\ k&1\end{bmatrix}$（沿 $y$ 軸方向推移 $x$ 的 $k$ 倍）</li></ul></li></ul>]]>
    </content>
    <id>https://chuen666666.com/%E5%AD%B8%E6%B8%AC%E6%95%B8A%E5%85%AC%E5%BC%8F%E7%AD%86%E8%A8%98/</id>
    <link href="https://chuen666666.com/%E5%AD%B8%E6%B8%AC%E6%95%B8A%E5%85%AC%E5%BC%8F%E7%AD%86%E8%A8%98/"/>
    <published>2026-01-02T02:05:53.000Z</published>
    <summary>整理所出學測數 A 範圍（高一 + 高二）的所有公式和做法說明，此為筆記，故部分概念不會太深入展開</summary>
    <title>學測數 A 公式筆記</title>
    <updated>2026-05-17T09:26:02.801Z</updated>
  </entry>
  <entry>
    <author>
      <name>淳</name>
    </author>
    <category term="筆記與教學" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/"/>
    <category term="程式" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/"/>
    <category term="競程" scheme="https://chuen666666.com/categories/%E7%AD%86%E8%A8%98%E8%88%87%E6%95%99%E5%AD%B8/%E7%A8%8B%E5%BC%8F/%E7%AB%B6%E7%A8%8B/"/>
    <category term="筆記" scheme="https://chuen666666.com/tags/%E7%AD%86%E8%A8%98/"/>
    <category term="程式" scheme="https://chuen666666.com/tags/%E7%A8%8B%E5%BC%8F/"/>
    <category term="題解" scheme="https://chuen666666.com/tags/%E9%A1%8C%E8%A7%A3/"/>
    <category term="競程" scheme="https://chuen666666.com/tags/%E7%AB%B6%E7%A8%8B/"/>
    <category term="Python" scheme="https://chuen666666.com/tags/Python/"/>
    <category term="教學" scheme="https://chuen666666.com/tags/%E6%95%99%E5%AD%B8/"/>
    <category term="資訊月資訊應用技能競賽" scheme="https://chuen666666.com/tags/%E8%B3%87%E8%A8%8A%E6%9C%88%E8%B3%87%E8%A8%8A%E6%87%89%E7%94%A8%E6%8A%80%E8%83%BD%E7%AB%B6%E8%B3%BD/"/>
    <content>
      <![CDATA[<p>此為歷屆「資訊月資訊應用技能競賽」Python 組的題目與解答<br>我會盡量以「效率最高」與「保證可讀性的條件下盡量簡潔」<br>詳解與解答程式碼為可收放格子，想練習者可先自行思考過後，再打開看解答</p><p>題目來源：<a href="https://www.tlhc.ylc.edu.tw/ischool/publish_page/24/?cid=827">斗六高中官網</a></p><p>若有任何錯誤、修改建議、疑問、想學 Python 者，歡迎與我聯繫<br><strong>若試題有侵權，請聯繫刪除！</strong></p><h2 id="108"><a href="#108" class="headerlink" title="108"></a>108</h2><h3 id="一、公里英哩換算"><a href="#一、公里英哩換算" class="headerlink" title="一、公里英哩換算"></a>一、公里英哩換算</h3><h4 id="題目"><a href="#題目" class="headerlink" title="題目"></a>題目</h4><p>假設一賽跑選手在 $x$ 分 $y$ 秒的時間跑完 $z$ 公里，請撰寫一程式，輸入 $x$、$y$、$z$ 數值，最後顯示此選手每小時的平均英哩速度（1 英哩等於 1.6 公里）。<br>（提示：輸出浮點數到小數點後第一位。）</p><h4 id="輸入說明"><a href="#輸入說明" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>$x$（min）、$y$（sec）、$z$（km）數值</p><h4 id="輸出說明"><a href="#輸出說明" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>速度</p><h4 id="範例輸入"><a href="#範例輸入" class="headerlink" title="範例輸入"></a>範例輸入</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs text">10<br>25<br>3<br></code></pre></td></tr></table></figure><h4 id="範例輸出"><a href="#範例輸出" class="headerlink" title="範例輸出"></a>範例輸出</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">Speed = 10.8<br></code></pre></td></tr></table></figure><h4 id="題解"><a href="#題解" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-fb89b913" role="button" aria-expanded="false" aria-controls="collapse-fb89b913">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-fb89b913">        <div class="fold-content">          <p>算速度 &rarr; 用公式 $v=\frac{\Delta x}{\Delta t}$<br>再轉換單位（1 mi = 1.6 km &rarr; 1 km = 0.625 mi）<br>輸出到小數點後一位的部分，可以使用 f-string 的格式化方法</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs python">x, y = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>z = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()) * <span class="hljs-number">0.625</span><br><br>ans = z / (x/<span class="hljs-number">60</span> + y/<span class="hljs-number">3600</span>) <span class="hljs-comment">#也可以直接把這串丟到答案（不設變數）</span><br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;Speed = <span class="hljs-subst">&#123;ans:<span class="hljs-number">.1</span>f&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="二、迴圈公式計算（變化）"><a href="#二、迴圈公式計算（變化）" class="headerlink" title="二、迴圈公式計算（變化）"></a>二、迴圈公式計算（變化）</h3><h4 id="題目-1"><a href="#題目-1" class="headerlink" title="題目"></a>題目</h4><p>請使用迴圈敘述撰寫一程式，讓使用者輸入正整數 $n$（$1 &lt; n$），計算以下公式的總和並顯示結果：</p><script type="math/tex; mode=display">4(1-\frac13+\frac15-\frac17+...+\frac{(-1)^{n+1}}{2n-1})</script><p>（提示：輸出結果至小數點後四位。）</p><h4 id="輸入說明-1"><a href="#輸入說明-1" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>一個正整數</p><h4 id="輸出說明-1"><a href="#輸出說明-1" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>代入公式計算結果</p><h4 id="範例輸入1"><a href="#範例輸入1" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">5<br></code></pre></td></tr></table></figure><h4 id="範例輸出1"><a href="#範例輸出1" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">3.3397<br></code></pre></td></tr></table></figure><h4 id="範例輸入2"><a href="#範例輸入2" class="headerlink" title="範例輸入2"></a>範例輸入2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">20<br></code></pre></td></tr></table></figure><h4 id="範例輸出2"><a href="#範例輸出2" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">3.0916<br></code></pre></td></tr></table></figure><h4 id="題解-1"><a href="#題解-1" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-05c60685" role="button" aria-expanded="false" aria-controls="collapse-05c60685">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-05c60685">        <div class="fold-content">          <p>若我們將題目給的公式改寫成求連加的等價形式：</p> <script type="math/tex; mode=display">4\sum_{k=1}^{n}\frac{(-1)^{k+1}}{2k-1}</script><p>那麼 for-loop 的寫法也就呼之欲出了<br>（還沒學過連加符號的話，簡單來說，它就是用來表示從 $k=1$ 到 $k=n$ 時，所有代入後面那個公式的結果的加和）</p> <p>這裡只要注意 <code>range()</code> 的尾部不會被跑到，因此要記得寫範圈時是 <code>(1, n+1)</code></p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs python">n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><br>ans = <span class="hljs-number">0</span><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">1</span>, n+<span class="hljs-number">1</span>):<br>    ans += (-<span class="hljs-number">1</span>)**(i+<span class="hljs-number">1</span>) / (<span class="hljs-number">2</span>*i - <span class="hljs-number">1</span>) <span class="hljs-comment">#題目給的公式，累加到答案上，以達成連加的效果</span><br><br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;<span class="hljs-number">4</span>*ans:<span class="hljs-number">.4</span>f&#125;</span>&#x27;</span>) <span class="hljs-comment">#記得把公式最前面的 4 乘回去</span><br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="三、倍數總和計算（變化）"><a href="#三、倍數總和計算（變化）" class="headerlink" title="三、倍數總和計算（變化）"></a>三、倍數總和計算（變化）</h3><h4 id="題目-2"><a href="#題目-2" class="headerlink" title="題目"></a>題目</h4><p>請撰寫一程式，讓使用者輸入兩個正整數 $a$、$b$（$a \le b$），輸出從 $a$ 到 $b$（包含 $a$ 和 $b$）之間 $4$ 或 $6$ 的倍數（但不包括 $4$ 和 $6$ 的公倍數），以及倍數之個數、總和。</p><h4 id="輸入說明-2"><a href="#輸入說明-2" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>兩個正整數（$a$、$b$，且 $a&lt;b$）</p><h4 id="輸出說明-2"><a href="#輸出說明-2" class="headerlink" title="輸出說明"></a>輸出說明</h4><ul><li>輸出兩個正整數之間 $4$ 或 $6$ 的倍數（但不包括 $4$ 和 $6$ 的公倍數），格式規定：<ul><li>輸出格式為一列輸出十個數字</li><li>欄寬為 4</li><li>靠左對齊</li></ul></li><li>倍數個數</li><li>倍數總合</li></ul><h4 id="範例輸入1-1"><a href="#範例輸入1-1" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs text">5<br>55<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-1"><a href="#範例輸出1-1" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><p>（下圖中的 <code>.</code> 為 <code>空格</code>）<br><img src="/img/infomonth1.png" class=""></p><h4 id="範例輸入2-1"><a href="#範例輸入2-1" class="headerlink" title="範例輸入2"></a>範例輸入2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs text">4<br>41<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-1"><a href="#範例輸出2-1" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><p>（下圖中的 <code>.</code> 為 <code>空格</code>）<br><img src="/img/infomonth2.png" class=""></p><h4 id="題解-2"><a href="#題解-2" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-715582ae" role="button" aria-expanded="false" aria-controls="collapse-715582ae">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-715582ae">        <div class="fold-content">          <p>首先，本題程式邏輯並不困難，因為題目未提及限時，我打算直接暴力破解</p> <p>我們可以跑一個迴圈，從 $a$ 檢查到 $b$，看看它是否同時符合「4 或 6 的倍數」與「非 4 或 6 的公倍數」<br>（對應程式邏輯：可被 4 或 6 整除，且不可被 12 整除）<br>我們把答案存入一個容器（list 或 set 皆可），以利格式化輸出</p> <p>為了滿足輸出格式要求，我們有幾件事要做：</p> <ol> <li>每個數字靠左佔四格<ul> <li>f-string 中，<code>&lt;n</code> 可靠左 n 格、<code>&gt;n</code> 可靠右 n 格</li> </ul> </li> <li>每輸出十個數字就換行<ul> <li>以一變數 <code>tmp</code> 來計數，達到 10 項時換行；平時的輸出記得改 <code>end=</code>）</li> </ul> </li> <li>但如果剛好十個數字，就不用換行<ul> <li>先寫換行判斷，再寫 <code>tmp += 1</code>，即「第 11 次才執行換行」</li> </ul> </li> <li>尾部再輸出符合的數量與加總<ul> <li>以 <code>len()</code> 和 <code>sum()</code> 計算之</li> </ul> </li> </ol> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><code class="hljs python">a, b = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()), <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>ans = []<br><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(a, b+<span class="hljs-number">1</span>):<br>    <span class="hljs-keyword">if</span> (i%<span class="hljs-number">4</span>==<span class="hljs-number">0</span> <span class="hljs-keyword">or</span> i%<span class="hljs-number">6</span>==<span class="hljs-number">0</span>) <span class="hljs-keyword">and</span> (i%<span class="hljs-number">12</span>!=<span class="hljs-number">0</span>):<br>        ans.append(i)<br><br>tmp = <span class="hljs-number">1</span><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> ans:<br>    <span class="hljs-keyword">if</span> tmp &gt; <span class="hljs-number">10</span>: <span class="hljs-comment">#先判斷換行再加，以免剛好 10 項時會多輸出一行空行</span><br>        <span class="hljs-built_in">print</span>()<br>        tmp = <span class="hljs-number">0</span> <span class="hljs-comment">#因為下面馬上就要+1，所以這裡寫 0</span><br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;i:&lt;<span class="hljs-number">4</span>&#125;</span>&#x27;</span>, end=<span class="hljs-string">&#x27;&#x27;</span>)<br>    tmp += <span class="hljs-number">1</span><br><span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;&#x27;</span>, <span class="hljs-built_in">len</span>(ans), <span class="hljs-built_in">sum</span>(ans), sep=<span class="hljs-string">&#x27;\n&#x27;</span>) <span class="hljs-comment">#以一空字串來多換一行（也可用 f-string 輸出）</span><br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="四、最大片段和"><a href="#四、最大片段和" class="headerlink" title="四、最大片段和"></a>四、最大片段和</h3><h4 id="題目-3"><a href="#題目-3" class="headerlink" title="題目"></a>題目</h4><p>讓使用者輸入不固定數量的整數（輸入 <code>-9999</code> 結束），對於使用者輸入的整數數列，請取出一組連續片段的整數，使得該片段的整數和為輸入整數數列中所有連續片段整數和中最大。<br>例如：輸入整數數列為 <code>num = [-5, 5, -1, 3, 4, -3]</code>，則連續片段的整數和最大為 <code>11</code>（<code>[5, -1, 3, 4]</code>）。</p><h4 id="輸入說明-3"><a href="#輸入說明-3" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>不固定數量的整數，直至輸入 <code>-9999</code> 結束</p><h4 id="輸出說明-3"><a href="#輸出說明-3" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>最大的連續片段整數和</p><h4 id="範例輸入1-2"><a href="#範例輸入1-2" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs text">-5<br>5<br>-1<br>3<br>4<br>-3<br>-9999<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-2"><a href="#範例輸出1-2" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">11<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-2"><a href="#範例輸出2-2" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs text">-3<br>5<br>-2<br>1<br>-4<br>-9999<br></code></pre></td></tr></table></figure><h5 id="範例輸出2-3"><a href="#範例輸出2-3" class="headerlink" title="範例輸出2"></a>範例輸出2</h5><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">5<br></code></pre></td></tr></table></figure><h4 id="題解-3"><a href="#題解-3" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-df030588" role="button" aria-expanded="false" aria-controls="collapse-df030588">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-df030588">        <div class="fold-content">          <p>這是一題經典的「<a href="https://youtube.com/shorts/lrH2sw-FmD4?si=Nh-tDYXekPDGQZI4">Kadane 演算法</a>」題<br>具體操作請看上方連結的影片</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs python">arr = []<br><span class="hljs-keyword">while</span> <span class="hljs-literal">True</span>:<br>    i = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>    <span class="hljs-keyword">if</span> i == -<span class="hljs-number">9999</span>:<br>        <span class="hljs-keyword">break</span><br>    arr.append(i)<br><br>cs = <span class="hljs-number">0</span> <span class="hljs-comment">#current sum</span><br>ms = <span class="hljs-built_in">float</span>(<span class="hljs-string">&#x27;-inf&#x27;</span>) <span class="hljs-comment">#max sum</span><br><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-built_in">len</span>(arr)):<br>    cs += arr[i]<br>    ms = <span class="hljs-built_in">max</span>(ms, cs)<br>    cs = <span class="hljs-built_in">max</span>(cs, <span class="hljs-number">0</span>)<br><br><span class="hljs-built_in">print</span>(ms)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="五、迴文質數"><a href="#五、迴文質數" class="headerlink" title="五、迴文質數"></a>五、迴文質數</h3><h4 id="題目-4"><a href="#題目-4" class="headerlink" title="題目"></a>題目</h4><p>請撰寫一程式，讓使用者輸入正整數 $n$，輸出小於 $n$ 的迴文質數，以及其總和。<br>迴文質數：既是質數又是迴文數的整數<br>質數：在大於 $1$ 的自然數中，除了 $1$ 和該數本身外，無法被其他自然數整除的數<br>迴文數：將該數的數字按相反的順序重新排列後，所得到的數和原來的數<br>一樣，例如 3、33、303。</p><h4 id="輸入說明-4"><a href="#輸入說明-4" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>一個正整數 $n$</p><h4 id="輸出說明-4"><a href="#輸出說明-4" class="headerlink" title="輸出說明"></a>輸出說明</h4><ul><li>格式化輸出小於 $n$ 的迴文質數，格式規定：<ul><li>數字欄寬為 4、靠左對齊</li><li>第一列一個數字，第二列兩個數字，依此類推</li><li>若符合的數字不夠，最後一列可不填滿</li></ul></li><li>迴文質數總合</li></ul><h4 id="範例輸入1-3"><a href="#範例輸入1-3" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">100<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-3"><a href="#範例輸出1-3" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><p>（下圖中的 <code>.</code> 為 <code>空格</code>）<br><img src="/img/infomonth3.png" class=""></p><h4 id="範例輸入2-2"><a href="#範例輸入2-2" class="headerlink" title="範例輸入2"></a>範例輸入2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">200<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-4"><a href="#範例輸出2-4" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><p>（下圖中的 <code>.</code> 為 <code>空格</code>）<br><img src="/img/infomonth4.png" class=""></p><h4 id="題解-4"><a href="#題解-4" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-d3c00709" role="button" aria-expanded="false" aria-controls="collapse-d3c00709">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-d3c00709">        <div class="fold-content">          <p>這題我認為難點不在邏輯上，而是輸出格式<br>但總體而言，它的難度還不如上一題</p> <p>首先，因為是找到「區間內所有符合條件者」<br>我們可以跑一迴圈，一項項檢查，符合者再放入 <code>ans</code><br>為此，我們針對「質數」及「迴文」各設一個檢查的函式</p> <p>迴文相對簡單，所以先講迴文的邏輯<br>將數字轉為字串後，直接比較字串本身與其左右翻轉後是否相同，即可</p> <p>質數的部分<br>最簡單的方法是，把 $2$ 到 $n-1$ 之間所有數都檢查一遍，看看它是否可以整除 $n$<br>但這是效率最差的方法<br>實際上，在數學上可以<a href="https://youtu.be/u40sQDBrGLs?si=T27mHEvvrxeIJgbE">證明</a>：若 $n$ 為合數，則必然能找到一個因數 $k$，且 $1&lt;k\le\sqrt{n}$<br>利用這個原理，我們便可以把檢查範圍縮至 $\sqrt{n}$，令程式效率高上許多</p> <p><code>ans</code> 中，我們可以直接開始檢查 $2$ 到 $n$ 間所有整數，將符合條件者放入<br>（此以 list comprehension 實作）</p> <p>輸出邏輯的部分最為麻煩<br>為了使輸出可以以「1 &rarr; 2 &rarr; 3 &rarr; …」的順序排下去<br>我們維護兩變數 <code>t</code> 和 <code>g</code><br><code>g</code> 負責計算「目前行應該要有幾個數」；<code>t</code> 負責計算「目前跑到第幾個數」</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">is_prime</span>(<span class="hljs-params">n</span>):</span><br>    <span class="hljs-keyword">if</span> n &lt; <span class="hljs-number">2</span>:<br>        <span class="hljs-keyword">return</span> <span class="hljs-literal">False</span><br>    <br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">2</span>, <span class="hljs-built_in">int</span>(n**<span class="hljs-number">0.5</span>)+<span class="hljs-number">1</span>):<br>        <span class="hljs-keyword">if</span> n % i == <span class="hljs-number">0</span>:<br>            <span class="hljs-keyword">return</span> <span class="hljs-literal">False</span><br>    <span class="hljs-keyword">return</span> <span class="hljs-literal">True</span><br><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">is_pal</span>(<span class="hljs-params">s</span>):</span><br>    s = <span class="hljs-built_in">str</span>(s)<br>    <span class="hljs-keyword">return</span> s == s[::-<span class="hljs-number">1</span>]<br><br>n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>ans = [i <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">2</span>, n) <span class="hljs-keyword">if</span> is_prime(i) <span class="hljs-keyword">and</span> is_pal(i)]<br><br>t, g = <span class="hljs-number">0</span>, <span class="hljs-number">1</span><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> ans:<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;i:&lt;<span class="hljs-number">4</span>&#125;</span>&#x27;</span>, end=<span class="hljs-string">&#x27;&#x27;</span>)<br>    t += <span class="hljs-number">1</span> <span class="hljs-comment">#目前行數+1</span><br>    <span class="hljs-keyword">if</span> t &gt;= g: <span class="hljs-comment">#到目標行數，換行，目標行數+1，目前行數歸零</span><br>        <span class="hljs-built_in">print</span>()<br>        g += <span class="hljs-number">1</span><br>        t = <span class="hljs-number">0</span><br><span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;&#x27;</span> <span class="hljs-keyword">if</span> t == <span class="hljs-number">0</span> <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;\n&#x27;</span>, <span class="hljs-built_in">sum</span>(ans), sep=<span class="hljs-string">&#x27;&#x27;</span>) <span class="hljs-comment"># t == 0 代表剛換行完，此情形下跳過換行，否則多換一行</span><br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h2 id="109"><a href="#109" class="headerlink" title="109"></a>109</h2><h3 id="一、數值計算"><a href="#一、數值計算" class="headerlink" title="一、數值計算"></a>一、數值計算</h3><h4 id="題目-5"><a href="#題目-5" class="headerlink" title="題目"></a>題目</h4><p>請撰寫一程式，讓使用者輸入四個數字，計算並輸出這四個數字之數值、總和以及平均數。<br>（提示：總和與平均數皆輸出到小數點後第二位。）</p><h4 id="輸入說明-5"><a href="#輸入說明-5" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>四個數字</p><h4 id="輸出說明-5"><a href="#輸出說明-5" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>輸出四個數字<br>總和<br>平均數</p><h4 id="範例輸入1-4"><a href="#範例輸入1-4" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs text">20<br>40<br>60<br>80<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-4"><a href="#範例輸出1-4" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs text">20 40 60 80<br>Sum = 200.00<br>Average = 50.00<br></code></pre></td></tr></table></figure><h4 id="範例輸入2-3"><a href="#範例輸入2-3" class="headerlink" title="範例輸入2"></a>範例輸入2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs text">88.7<br>12<br>56<br>132.55<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-5"><a href="#範例輸出2-5" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs text">88.7 12 56 132.55<br>Sum = 289.25<br>Average = 72.31<br></code></pre></td></tr></table></figure><h4 id="題解-5"><a href="#題解-5" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-994b4ecd" role="button" aria-expanded="false" aria-controls="collapse-994b4ecd">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-994b4ecd">        <div class="fold-content">          <p>因為輸入有整數也有浮點數，還要依照原樣輸出<br>因此這裡我寫了一個函式，專門把文數字換成數字形式</p> <p>首先，直接把輸入的值原地輸出，是最保險的做法<br>再來，使用 <code>map()</code> 來把每項字串都換成數字<br>計算出總和 <code>total</code> 後，輸出和與平均（用 f-string 格式化輸出）</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">tonum</span>(<span class="hljs-params">s</span>):</span><br>    <span class="hljs-keyword">try</span>:<br>        <span class="hljs-keyword">return</span> <span class="hljs-built_in">int</span>(s)<br>    <span class="hljs-keyword">except</span>:<br>        <span class="hljs-keyword">return</span> <span class="hljs-built_in">float</span>(s)<br><br>nums = [<span class="hljs-built_in">input</span>() <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">4</span>)]<br><span class="hljs-built_in">print</span>(*nums)<br><br>total = <span class="hljs-built_in">sum</span>(<span class="hljs-built_in">map</span>(tonum, nums))<br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;Sum = <span class="hljs-subst">&#123;total:<span class="hljs-number">.2</span>f&#125;</span>\nAverage = <span class="hljs-subst">&#123;total/<span class="hljs-number">4</span>:<span class="hljs-number">.2</span>f&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="二、等級判斷"><a href="#二、等級判斷" class="headerlink" title="二、等級判斷"></a>二、等級判斷</h3><h4 id="題目-6"><a href="#題目-6" class="headerlink" title="題目"></a>題目</h4><p>請使用選擇敘述撰寫一程式，根據使用者輸入的分數顯示對應的等級。<br>標準如下表所示：</p><div class="table-container"><table><thead><tr><th style="text-align:center">分數</th><th style="text-align:center">等級</th></tr></thead><tbody><tr><td style="text-align:center">80 ~ 100</td><td style="text-align:center">A</td></tr><tr><td style="text-align:center">70 ~ 79</td><td style="text-align:center">B</td></tr><tr><td style="text-align:center">60 ~ 69</td><td style="text-align:center">C</td></tr><tr><td style="text-align:center">&le; 59</td><td style="text-align:center">F</td></tr></tbody></table></div><h4 id="輸入說明-6"><a href="#輸入說明-6" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>一個整數</p><h4 id="輸出說明-6"><a href="#輸出說明-6" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>判斷數值所對應的等級</p><h4 id="範例輸入-1"><a href="#範例輸入-1" class="headerlink" title="範例輸入"></a>範例輸入</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">79<br></code></pre></td></tr></table></figure><h4 id="範例輸出-1"><a href="#範例輸出-1" class="headerlink" title="範例輸出"></a>範例輸出</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">B<br></code></pre></td></tr></table></figure><h4 id="題解-6"><a href="#題解-6" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-3f8ddb9c" role="button" aria-expanded="false" aria-controls="collapse-3f8ddb9c">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-3f8ddb9c">        <div class="fold-content">          <p>非常簡單的範圍判斷，可以順便練習一下三元運算子（把 if-else 寫在同一行的寫法）<br>小提醒，因為值範圍是從高判到低，不用特別寫 $n &lt; 某數$</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs python">n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;A&#x27;</span> <span class="hljs-keyword">if</span> n &gt; <span class="hljs-number">80</span> <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;B&#x27;</span> <span class="hljs-keyword">if</span> n &gt; <span class="hljs-number">70</span> <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;C&#x27;</span> <span class="hljs-keyword">if</span> n &gt; <span class="hljs-number">60</span> <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;F&#x27;</span>)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="三、遞迴公式計算"><a href="#三、遞迴公式計算" class="headerlink" title="三、遞迴公式計算"></a>三、遞迴公式計算</h3><h4 id="題目-7"><a href="#題目-7" class="headerlink" title="題目"></a>題目</h4><p>請使用迴圈敘述撰寫一程式，讓使用者輸入正整數 $n$（$1&lt;n$），計算以下公式的總和並顯示結果：</p><script type="math/tex; mode=display">\frac{1}{1+\sqrt2}+\frac{1}{\sqrt2+\sqrt3}+\frac{1}{\sqrt3+\sqrt4}+...+\frac{1}{\sqrt{n-1}+\sqrt{n}}</script><p>（提示：輸出結果至小數點後四位。）</p><h4 id="輸入說明-7"><a href="#輸入說明-7" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>一個正整數</p><h4 id="輸出說明-7"><a href="#輸出說明-7" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>代入公式計算結果</p><h4 id="範例輸入-2"><a href="#範例輸入-2" class="headerlink" title="範例輸入"></a>範例輸入</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">8<br></code></pre></td></tr></table></figure><h4 id="範例輸出-2"><a href="#範例輸出-2" class="headerlink" title="範例輸出"></a>範例輸出</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">1.8284<br></code></pre></td></tr></table></figure><h4 id="題解-7"><a href="#題解-7" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-d8f9f3c8" role="button" aria-expanded="false" aria-controls="collapse-d8f9f3c8">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-d8f9f3c8">        <div class="fold-content">          <p>這題的最後也給了一個一般化的公式，我們可以將此題改寫為：</p> <script type="math/tex; mode=display"> \sum_{k=2}^{n}\frac{1}{\sqrt{k-1}+\sqrt{k}}</script><p>那麼程式碼也就很好想了</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs python">n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>ans = <span class="hljs-number">0</span><br><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">2</span>, n+<span class="hljs-number">1</span>):<br>    ans += <span class="hljs-number">1</span> / ((i-<span class="hljs-number">1</span>)**<span class="hljs-number">0.5</span> + i**<span class="hljs-number">0.5</span>)<br><br><span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;ans:<span class="hljs-number">.4</span>f&#125;</span>&#x27;</span>)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="四、哥德巴赫猜想"><a href="#四、哥德巴赫猜想" class="headerlink" title="四、哥德巴赫猜想"></a>四、哥德巴赫猜想</h3><h4 id="題目-8"><a href="#題目-8" class="headerlink" title="題目"></a>題目</h4><p>哥德巴赫猜想（Goldbach’s conjecture）的一般性敘述為「任一大於 $2$ 的偶數，都可表示成兩個質數之和」，請撰寫一程式讓使用者輸入大於 $2$ 的偶數 $n$，進行下列步驟：</p><ol><li>找出兩個質數 $a$、$b$ 使得 $n=a+b$ 且 $a-b$ 的絕對值為最小值</li><li>取 $n_1=|a-b|$ 並進行步驟 1，直到 $n_1=2$ 或 $n_1=0$ 為止</li><li><p>輸出運算過程中的 $n$、$n_1$……<br>例如：輸入 $n=64$，運算過程如下：</p> <div class="note note-primary">            <p>步驟1：$a=41,b=23$ （$64=41+23$）<br>步驟2：$n_1=|a-b|=41-23=18$<br>步驟1：$a=11,b=7$ （$18=11+7$）<br>步驟2：$n_1=|a-b|=11-7=4$<br>步驟1：$a=2,b=2$ （$4=2+2$）<br>步驟2：$n_1=|a-b|=2-2=0$<br>步驟3：輸出 $64,18,4,0$</p>           </div></li></ol><h4 id="輸入說明-8"><a href="#輸入說明-8" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>大於 $2$ 的偶數</p><h4 id="輸出說明-8"><a href="#輸出說明-8" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>依上述範例輸出運算結果，數字間以逗點（<code>,</code>）隔開</p><h4 id="範例輸入1-5"><a href="#範例輸入1-5" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">64<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-5"><a href="#範例輸出1-5" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">64,18,4,0,<br></code></pre></td></tr></table></figure><h4 id="範例輸入2-4"><a href="#範例輸入2-4" class="headerlink" title="範例輸入2"></a>範例輸入2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">50<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-6"><a href="#範例輸出2-6" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">50,12,2,<br></code></pre></td></tr></table></figure><h4 id="題解-8"><a href="#題解-8" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-a5b5ea11" role="button" aria-expanded="false" aria-controls="collapse-a5b5ea11">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-a5b5ea11">        <div class="fold-content">          <p>這題算是較有難度的題目之一<br>這裡直接用暴力法來解<br>（優化題示：可以考慮不要跑過每個數字，試著把小質數如 2、3 的倍數跳過，就可以極大減少迴圈次數，也可以查查看相關演算法的做法）</p> <p>由於題目要多次判斷質數，質數部分直接寫一函式來解決<br>至於第一步驟要不要寫成函式，就看你囉<br>但第二步只會用到迴圈，直接寫在主程式中即可</p> <p>質數判斷前面有題目說過，這裡就不多說了<br>第一步驟的部分，我們可以用一個容器 <code>ans</code> 來存所有可能的答案<br>判斷很簡單，遍歷 $2$ 到 $n-1$ 的每個數<br>檢查目前跑到的數與其減去 $n$ 的數，是否皆質數（構建 $a+b=n$）<br>以 <code>(a, b)</code> 的方式存於 <code>ans</code> 中<br>再用 <code>sort()</code> 的 <code>key=</code> 指定排序方式為 <code>i-j</code> 的絕對值<br>最後回傳 <code>ans[0]</code>，即步驟一所求</p> <p>主程式中，我們要跑迴圈，中斷條件如題目所述（$n=2$ 或 $n=0$）<br>每次迴圈都要輸出並更新 <code>n</code><br>最後記得再輸出一次，才不會缺少最後一個答案<br>輸出尾部直接用 <code>end=</code> 指定即可</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">is_prime</span>(<span class="hljs-params">n</span>):</span><br>    <span class="hljs-keyword">if</span> n &lt; <span class="hljs-number">2</span>:<br>        <span class="hljs-keyword">return</span> <span class="hljs-literal">False</span><br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">2</span>, <span class="hljs-built_in">int</span>(n**<span class="hljs-number">0.5</span>)+<span class="hljs-number">1</span>):<br>        <span class="hljs-keyword">if</span> n % i == <span class="hljs-number">0</span>:<br>            <span class="hljs-keyword">return</span> <span class="hljs-literal">False</span><br>    <span class="hljs-keyword">return</span> <span class="hljs-literal">True</span><br><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">step1</span>(<span class="hljs-params">n</span>):</span><br>    ans = []<br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">2</span>, n): <span class="hljs-comment">#逐一檢查符合條件者</span><br>        j = n - i<br>        <span class="hljs-keyword">if</span> is_prime(i) <span class="hljs-keyword">and</span> is_prime(j):<br>            ans.append((i, j))<br>    ans.sort(key=<span class="hljs-keyword">lambda</span> x: <span class="hljs-built_in">abs</span>(x[<span class="hljs-number">0</span>]-x[<span class="hljs-number">1</span>])) <span class="hljs-comment">#依兩數相減的絕對值來排序</span><br>    <span class="hljs-keyword">return</span> ans[<span class="hljs-number">0</span>] <span class="hljs-comment">#即兩數相減絕對值最小者</span><br><br>n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br><span class="hljs-keyword">while</span> n != <span class="hljs-number">2</span> <span class="hljs-keyword">and</span> n != <span class="hljs-number">0</span>:<br>    <span class="hljs-built_in">print</span>(n, end=<span class="hljs-string">&#x27;,&#x27;</span>)<br>    a, b = step1(n)<br>    n = <span class="hljs-built_in">abs</span>(a - b)<br><span class="hljs-built_in">print</span>(n, end=<span class="hljs-string">&#x27;,&#x27;</span>)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="五、括弧配對"><a href="#五、括弧配對" class="headerlink" title="五、括弧配對"></a>五、括弧配對</h3><h4 id="題目-9"><a href="#題目-9" class="headerlink" title="題目"></a>題目</h4><p>讓使用者輸入一個字串，包含左、右括弧與其他符號。與一般常見的算術運算式一樣，一個左括弧與在它右邊且最接近的右括弧配對。請找出已配對與無法配對的括弧，並用不同符號標示後輸出。<br>（注意：輸入字串不需要是合法的運算式。）</p><h4 id="輸入說明-9"><a href="#輸入說明-9" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>一個字串，包含文字、數字、左、右括弧與其他符號</p><h4 id="輸出說明-9"><a href="#輸出說明-9" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>標示已配對的左、右括弧以 <code>*</code> 號標示<br>無法配對的括弧以 <code>?</code> 號標示<br>文字、數字與其他符號以 <code>=</code> 標示</p><h4 id="範例輸入1-6"><a href="#範例輸入1-6" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">A(B+C))/(()D<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-6"><a href="#範例輸出1-6" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">=*===*?=?**=<br></code></pre></td></tr></table></figure><h4 id="範例輸入2-5"><a href="#範例輸入2-5" class="headerlink" title="範例輸入2"></a>範例輸入2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">(A+B)(C+D))+A-B(D+E)(T<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-7"><a href="#範例輸出2-7" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">*===**===*?====*===*?=<br></code></pre></td></tr></table></figure><h4 id="範例輸出3"><a href="#範例輸出3" class="headerlink" title="範例輸出3"></a>範例輸出3</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">((A+5)+(B-3)/2))<br></code></pre></td></tr></table></figure><h4 id="範例輸出3-1"><a href="#範例輸出3-1" class="headerlink" title="範例輸出3"></a>範例輸出3</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">**===*=*===*==*?<br></code></pre></td></tr></table></figure><h4 id="題解-9"><a href="#題解-9" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-27140a2a" role="button" aria-expanded="false" aria-controls="collapse-27140a2a">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-27140a2a">        <div class="fold-content">          <p>這題應該是這個筆記檔中最難的一題了<br>可能有人看到題目會直覺想到用 <code>replace()</code>，甚至正規表達式<br>但其實我們不一定要直接操作字串<br>也可以額外開一個 list 來存答案</p> <p>首先，由於除了括號外的所有東西都是 <code>=</code><br>因此 <code>ans</code> 初始先假設「全部是 <code>=</code>」<br>如此，我們便只需要處理括號</p> <p><code>stack</code> 是專門用來存左括號位置的<br>只要遇到左括號，就放入<br>遇到右括號且 <code>stack</code> 內有東西時，則拿出，並把左右都標成 <code>*</code></p> <p>剩下的情況（<code>stack</code> 空且遇 <code>)</code>、全部跑完且 <code>stack</code> 有剩）<br>就是配對不了的左右括號，標成 <code>?</code></p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><code class="hljs python">s = <span class="hljs-built_in">input</span>()<br>ans = [<span class="hljs-string">&#x27;=&#x27;</span>] * <span class="hljs-built_in">len</span>(s)<br><br>stack = []<br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-built_in">len</span>(s)):<br>    <span class="hljs-keyword">if</span> s[i] == <span class="hljs-string">&#x27;(&#x27;</span>:<br>        stack.append(i) <span class="hljs-comment">#記錄 &quot;(&quot; 的位置</span><br>    <span class="hljs-keyword">elif</span> s[i] == <span class="hljs-string">&#x27;)&#x27;</span>:<br>        <span class="hljs-keyword">if</span> stack: <span class="hljs-comment">#stack 裡有東西，代表該括號有得配對</span><br>            ans[stack.pop()] = <span class="hljs-string">&#x27;*&#x27;</span><br>            ans[i] = <span class="hljs-string">&#x27;*&#x27;</span><br>        <span class="hljs-keyword">else</span>: <span class="hljs-comment">#沒得配對</span><br>            ans[i] = <span class="hljs-string">&#x27;?&#x27;</span><br><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> stack: <span class="hljs-comment">#處理剩下沒配對的 &quot;(&quot;</span><br>    ans[i] = <span class="hljs-string">&#x27;?&#x27;</span><br><br><span class="hljs-built_in">print</span>(*ans, sep=<span class="hljs-string">&#x27;&#x27;</span>)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h2 id="112"><a href="#112" class="headerlink" title="112"></a>112</h2><h3 id="一、差值計算"><a href="#一、差值計算" class="headerlink" title="一、差值計算"></a>一、差值計算</h3><h4 id="題目-10"><a href="#題目-10" class="headerlink" title="題目"></a>題目</h4><p>請撰寫一程式，讓使用者輸入六個不重複的整數，計算並輸出較大的三個數值和與較小的三個數值和之差。</p><h4 id="輸入說明-10"><a href="#輸入說明-10" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>六個不重複的整數</p><h4 id="輸出說明-10"><a href="#輸出說明-10" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>較大的三個數值和與較小的三個數值和之差</p><h4 id="範例輸入-3"><a href="#範例輸入-3" class="headerlink" title="範例輸入"></a>範例輸入</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs text">10<br>20<br>30<br>40<br>50<br>60<br></code></pre></td></tr></table></figure><h4 id="範例輸出-3"><a href="#範例輸出-3" class="headerlink" title="範例輸出"></a>範例輸出</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">90<br></code></pre></td></tr></table></figure><h4 id="題解-10"><a href="#題解-10" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-fc319f56" role="button" aria-expanded="false" aria-controls="collapse-fc319f56">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-fc319f56">        <div class="fold-content">          <p>先讀入六個數字，並存入一個 list 中<br>把它排序後，把後三項和減去前三項和，即答案</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs python">array = [<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()) <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">6</span>)]<br>array.sort()<br><span class="hljs-built_in">print</span>(<span class="hljs-built_in">sum</span>(array[<span class="hljs-number">3</span>:]) - <span class="hljs-built_in">sum</span>(array[:<span class="hljs-number">3</span>]))<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="二、過半數"><a href="#二、過半數" class="headerlink" title="二、過半數"></a>二、過半數</h3><h4 id="題目-11"><a href="#題目-11" class="headerlink" title="題目"></a>題目</h4><p>請撰寫一程式，讓使用者輸入一個正整數 $n(1 &lt; n \le 15)$，接著輸入 $n$ 個整數，判斷此數列中是否有數值出現的次數超過半數。若有，請輸出此數值為何；若無，請輸出 <code>error</code>。<br>（注意：$n$ 個整數的數列中，若出現次數大於 $\frac{n}{2}$ 的值，稱為「過半數」。）</p><h4 id="輸入說明-11"><a href="#輸入說明-11" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>一個正整數 $n(1 &lt; n \le 15)$ 及 $n$ 個整數</p><h4 id="輸出說明-11"><a href="#輸出說明-11" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>判斷是否有過半數</p><h4 id="範例輸入1-7"><a href="#範例輸入1-7" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs text">5<br>2 1 3 2 2<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-7"><a href="#範例輸出1-7" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">2<br></code></pre></td></tr></table></figure><h4 id="範例輸入2-6"><a href="#範例輸入2-6" class="headerlink" title="範例輸入2"></a>範例輸入2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs text">4<br>5 5 6 6<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-8"><a href="#範例輸出2-8" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">error<br></code></pre></td></tr></table></figure><h4 id="題解-11"><a href="#題解-11" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-f97ff480" role="button" aria-expanded="false" aria-controls="collapse-f97ff480">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-f97ff480">        <div class="fold-content">          <p>為了計數，我們可以用標準函式庫中的 <code>collections.Counter()</code> 來計<br>標準輸入後，就用 <code>Counter()</code> 計數，以及設定一個 <code>ans</code> 預存答案</p> <p>把 <code>counter</code> 跑一次迴圈，逐項檢查 value 是否過半數<br>過了就把 <code>ans</code> 設為它的 key，並結束迴圈</p> <p>若有數字過半數，輸出，否則輸出 <code>error</code></p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-keyword">from</span> collections <span class="hljs-keyword">import</span> Counter<br><br>n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>a = <span class="hljs-built_in">list</span>(<span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split()))<br><br>counter = Counter(a)<br>ans = <span class="hljs-literal">None</span><br><br><span class="hljs-keyword">for</span> n, cnt <span class="hljs-keyword">in</span> counter.items():<br>    <span class="hljs-keyword">if</span> cnt % <span class="hljs-number">2</span> == <span class="hljs-number">1</span>:<br>        ans = n<br>        <span class="hljs-keyword">break</span><br><br><span class="hljs-built_in">print</span>(ans <span class="hljs-keyword">if</span> ans <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> <span class="hljs-literal">None</span> <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;error&#x27;</span>)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="三、字串拆解"><a href="#三、字串拆解" class="headerlink" title="三、字串拆解"></a>三、字串拆解</h3><h4 id="題目-12"><a href="#題目-12" class="headerlink" title="題目"></a>題目</h4><p>請撰寫一程式，讓使用者輸入一個用 <code>@</code> 符號分隔的整數字串，字串長度不超過 128 字元，將字串中的整數字元轉換為整數，依序輸出最大值、最小值以及有幾個質數。<br>（質數定義：在大於 $1$ 的自然數中，除了 $1$ 和該數自身外，無法被其他自然數整除的數。）</p><h4 id="輸入說明-12"><a href="#輸入說明-12" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>用 <code>@</code> 符號分隔的整數字串</p><h4 id="輸出說明-12"><a href="#輸出說明-12" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>最大值、最小值以及有幾個質數</p><h4 id="範例輸入1-8"><a href="#範例輸入1-8" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">6@-3@12@0@3<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-8"><a href="#範例輸出1-8" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs text">12<br>-3<br>1<br></code></pre></td></tr></table></figure><h4 id="範例輸入2-7"><a href="#範例輸入2-7" class="headerlink" title="範例輸入2"></a>範例輸入2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">2@5@7@-8<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-9"><a href="#範例輸出2-9" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs text">7<br>-8<br>3<br></code></pre></td></tr></table></figure><h4 id="題解-12"><a href="#題解-12" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-5bed508c" role="button" aria-expanded="false" aria-controls="collapse-5bed508c">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-5bed508c">        <div class="fold-content">          <p>首先，把 <code>split()</code> 的引數設為 <code>@</code>，即可用它切成 list<br>再來，用 <code>max()</code> 和 <code>min()</code> 找最值<br>至於質數，一樣用之前寫過的那種寫法<br>至於計數，可以用 <code>filter()</code> 來保留所有質數，並用 <code>len()</code> 數<br>（記得先把 <code>filter()</code> 轉為 list，否則無法取 <code>len()</code>）</p>         </div>      </div>    </div><h3 id="四、十進位轉二進位"><a href="#四、十進位轉二進位" class="headerlink" title="四、十進位轉二進位"></a>四、十進位轉二進位</h3><h4 id="題目-13"><a href="#題目-13" class="headerlink" title="題目"></a>題目</h4><p>請撰寫一個程式，讓使用者輸入一個正整數 $N(0 &lt; N &lt; 256)$，請將 $N$ 轉成二進位並輸出。</p><h4 id="輸入說明-13"><a href="#輸入說明-13" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>一個正整數 $N(0 &lt; N &lt; 256)$</p><h4 id="輸出說明-13"><a href="#輸出說明-13" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>轉換成二進位的結果</p><h4 id="範例輸入1-9"><a href="#範例輸入1-9" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">12<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-9"><a href="#範例輸出1-9" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">1100<br></code></pre></td></tr></table></figure><h4 id="範例輸入2-8"><a href="#範例輸入2-8" class="headerlink" title="範例輸入2"></a>範例輸入2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">99<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-10"><a href="#範例輸出2-10" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">1100011<br></code></pre></td></tr></table></figure><h4 id="題解-13"><a href="#題解-13" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-09626ff8" role="button" aria-expanded="false" aria-controls="collapse-09626ff8">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-09626ff8">        <div class="fold-content">          <p>十進制轉二進制對於 Python 來說非常簡單<br>只需要用 <code>bin()</code> 函數即可<br>但最後記得取 <code>[2:]</code>，否則會有前綴（<code>0b</code>）</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-built_in">print</span>(<span class="hljs-built_in">bin</span>(<span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>()))[<span class="hljs-number">2</span>:])<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="五、字母計數"><a href="#五、字母計數" class="headerlink" title="五、字母計數"></a>五、字母計數</h3><h4 id="題目-14"><a href="#題目-14" class="headerlink" title="題目"></a>題目</h4><p>小明在學習乘法算數，作為練習，他隨意寫一串大寫英文字母，計算所有字母分別出現的次數，再將這些數字相乘得到最終結果。請撰寫一程式，輸入一個由大寫英文字母組成的字串，並輸出字母出現個數相乘的結果。</p><h4 id="輸入說明-14"><a href="#輸入說明-14" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>一個由大寫英文字母組成且長度為 $L$ 的字串，其中 $0 &lt; L &lt; 31$</p><h4 id="輸出說明-14"><a href="#輸出說明-14" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>字母出現個數相乘的結果</p><h4 id="範例輸入1-10"><a href="#範例輸入1-10" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">AACCCBB<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-10"><a href="#範例輸出1-10" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">12<br></code></pre></td></tr></table></figure><h4 id="範例輸入2-9"><a href="#範例輸入2-9" class="headerlink" title="範例輸入2"></a>範例輸入2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">ASDFEGDSVVVVVVVVV<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-11"><a href="#範例輸出2-11" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">36<br></code></pre></td></tr></table></figure><h4 id="題解-14"><a href="#題解-14" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-d1f0d555" role="button" aria-expanded="false" aria-controls="collapse-d1f0d555">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-d1f0d555">        <div class="fold-content">          <p>這題其實可以簡單用兩個標準函式庫就解決<br>首先，為了計入每個字的出現次數，要用 <code>collections.Counter()</code><br>再來，可以用 <code>math.prod()</code> 來求出 iteralbe 內每個元素的乘積</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-keyword">from</span> collections <span class="hljs-keyword">import</span> Counter<br><span class="hljs-keyword">from</span> math <span class="hljs-keyword">import</span> prod<br><br>s = Counter(<span class="hljs-built_in">input</span>())<br><span class="hljs-built_in">print</span>(prod(s.values()))<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h2 id="113"><a href="#113" class="headerlink" title="113"></a>113</h2><h3 id="一、迴文數"><a href="#一、迴文數" class="headerlink" title="一、迴文數"></a>一、迴文數</h3><h4 id="題目-15"><a href="#題目-15" class="headerlink" title="題目"></a>題目</h4><p>請撰寫一程式，讓使用者輸入一正整數，判斷是否為迴文數，若是，請輸出 <code>Yes</code>；若不是，請輸出 <code>No</code>。<br>（迴文數：此數的數字按相反的順序重新排列後，所得到的數和原來的數一樣。）</p><h4 id="輸入說明-15"><a href="#輸入說明-15" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>一個正整數</p><h4 id="輸出說明-15"><a href="#輸出說明-15" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>判斷是否為迴文數</p><h4 id="範例輸入1-11"><a href="#範例輸入1-11" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">14641<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-11"><a href="#範例輸出1-11" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">Yes<br></code></pre></td></tr></table></figure><h4 id="範例輸入2-10"><a href="#範例輸入2-10" class="headerlink" title="範例輸入2"></a>範例輸入2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">25523<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-12"><a href="#範例輸出2-12" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">No<br></code></pre></td></tr></table></figure><h4 id="題解-15"><a href="#題解-15" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-c0894521" role="button" aria-expanded="false" aria-controls="collapse-c0894521">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-c0894521">        <div class="fold-content">          <p>這題就是檢查原文是否等於反轉後字串即可</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs python">s = <span class="hljs-built_in">input</span>()<br><span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;Yes&#x27;</span> <span class="hljs-keyword">if</span> s == s[::-<span class="hljs-number">1</span>] <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;No&#x27;</span>)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="二、庫存函數"><a href="#二、庫存函數" class="headerlink" title="二、庫存函數"></a>二、庫存函數</h3><h4 id="題目-16"><a href="#題目-16" class="headerlink" title="題目"></a>題目</h4><p>請撰寫一程式，讓使用者先輸入三組字串及其相對應的庫存量做為比對標準，接著再輸入五個字串，若這五個字串與任一比對標準相同，則加上庫存量，最後輸出庫存量總合。<br>（提示 1：字串長度皆不超過 20 字元且庫存量皆為整數。）<br>（提示 2：大小寫視為不同的字串。）</p><h4 id="輸入說明-16"><a href="#輸入說明-16" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>三組字串及其相對應的庫存量、五個字串</p><h4 id="輸出說明-16"><a href="#輸出說明-16" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>庫存量總和</p><h4 id="範例輸入-4"><a href="#範例輸入-4" class="headerlink" title="範例輸入"></a>範例輸入</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs text">Apple 100<br>Asus 90<br>Acer 80<br>Msi<br>Apple<br>Lenovo<br>Asus<br>Dell<br></code></pre></td></tr></table></figure><h4 id="範例輸出-4"><a href="#範例輸出-4" class="headerlink" title="範例輸出"></a>範例輸出</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">190<br></code></pre></td></tr></table></figure><h4 id="題解-16"><a href="#題解-16" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-1e6408ec" role="button" aria-expanded="false" aria-controls="collapse-1e6408ec">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-1e6408ec">        <div class="fold-content">          <p>這題一看到輸入格式，就應該能想到要用 dict 來解<br>先建立好 dict 作為庫存，並逐一讀入，若存在庫存中，就把數計上<br>最後輸出計數即可</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><code class="hljs python">goods = &#123;&#125;<br>ans = <span class="hljs-number">0</span><br><br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">3</span>): <span class="hljs-comment"># 理論上可用 dict comprehension，但會變得極難閱讀</span><br>    k, v = <span class="hljs-built_in">input</span>().split()<br>    goods[k] = <span class="hljs-built_in">int</span>(v)<br><br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">5</span>):<br>    p = <span class="hljs-built_in">input</span>()<br>    <span class="hljs-keyword">if</span> p <span class="hljs-keyword">in</span> goods:<br>        ans += goods[p]<br><br><span class="hljs-built_in">print</span>(ans)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="三、檢驗學號"><a href="#三、檢驗學號" class="headerlink" title="三、檢驗學號"></a>三、檢驗學號</h3><h4 id="題目-17"><a href="#題目-17" class="headerlink" title="題目"></a>題目</h4><ol><li>請撰寫一程式，讓使用者輸入三組學號，學號總共有 6 個字元，由左至右分別以 $s0$~$s5$ 表示，$s0$~$s4$ 均是數字；$s5$ 是大寫英文字母的檢查碼。</li><li>$s5$ 的判斷規則：若公式 <code>((s0+s2+s4)+(s1+s3)*5)%26</code> 的計算結果為 $1$，則 $s5$ 為 <code>A</code>；若計算結果為 $2$，則 $s5$ 為 <code>B</code>，以此類推。</li><li>學校規定：學號中的奇數數字不得超過 2 個，請依序判斷使用者輸入的學號是否正確，正確則輸出 <code>Pass</code>，否則輸出 <code>Fail</code>。<br>（提示：數字 <code>0</code> 的 ASCII 碼=48，英文字母 <code>A</code> 的 ASCII 碼=65。）</li></ol><h4 id="輸入說明-17"><a href="#輸入說明-17" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>三組學號</p><h4 id="輸出說明-17"><a href="#輸出說明-17" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>三組學號是否合法</p><h4 id="範例輸入-5"><a href="#範例輸入-5" class="headerlink" title="範例輸入"></a>範例輸入</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs text">12345M<br>55236B<br>04805G<br></code></pre></td></tr></table></figure><h4 id="範例輸出-5"><a href="#範例輸出-5" class="headerlink" title="範例輸出"></a>範例輸出</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs text">Fail<br>Fail<br>Pass<br></code></pre></td></tr></table></figure><h4 id="題解-17"><a href="#題解-17" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-2d16d1f0" role="button" aria-expanded="false" aria-controls="collapse-2d16d1f0">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-2d16d1f0">        <div class="fold-content">          <p>這題除了在輸入上比較麻煩外，其實邏輯不算太難<br>首先，應題目要求，寫一個函式來檢查 3.</p> <p>再來，寫一個迴圈來把程式執行三次，以達成「3 次輸入」要求</p> <p>主程式中，檢查 3. 和2.，並最後輸出即可</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">less_than_1_odd</span>(<span class="hljs-params">arr</span>):</span><br>    odd = <span class="hljs-number">0</span><br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> arr:<br>        <span class="hljs-keyword">if</span> i % <span class="hljs-number">2</span> == <span class="hljs-number">1</span>:<br>            odd += <span class="hljs-number">1</span><br>    <span class="hljs-keyword">return</span> odd &lt;= <span class="hljs-number">2</span><br><br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">3</span>):<br>    s0, s1, s2, s3, s4, s5 = <span class="hljs-built_in">input</span>()<br>    s0, s1, s2, s3, s4 = <span class="hljs-built_in">int</span>(s0), <span class="hljs-built_in">int</span>(s1), <span class="hljs-built_in">int</span>(s2), <span class="hljs-built_in">int</span>(s3), <span class="hljs-built_in">int</span>(s4)<br><br>    <span class="hljs-keyword">if</span> <span class="hljs-keyword">not</span> less_than_1_odd([s0, s1, s2, s3, s4]):<br>        <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;Fail&#x27;</span>)<br>        <span class="hljs-keyword">continue</span><br><br>    check = ((s0+s2+s4)+(s1+s3)*<span class="hljs-number">5</span>)%<span class="hljs-number">26</span> + <span class="hljs-number">64</span><br><br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;Pass&#x27;</span> <span class="hljs-keyword">if</span> check == <span class="hljs-built_in">ord</span>(s5) <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;Fail&#x27;</span>)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="四、找零錢"><a href="#四、找零錢" class="headerlink" title="四、找零錢"></a>四、找零錢</h3><h4 id="題目-18"><a href="#題目-18" class="headerlink" title="題目"></a>題目</h4><ol><li>請撰寫一程式，製作販賣機找零系統，讓使用者輸入一個正整數，代表需要找零的金額；再輸入三個不重複的正整數，代表販賣機可找零的硬幣面額，請依照「面額大至小」輸出找零結果，不同面額請用半形空格隔開，若未使用到該面額，則不須輸出。</li><li>販賣機找零規則：請使用最少的硬幣數目找零。<br>（輸入資料一定可以完成找零，且販賣機內的硬幣數量無上限。）</li></ol><h4 id="輸入說明-18"><a href="#輸入說明-18" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>第 1 列：一個正整數，代表要找零的金額 $N(0 &lt; N &lt; 2000)$<br>第 2 列：三個正整數，代表三種硬幣面額，中間以半形空白間隔</p><h4 id="輸出說明-18"><a href="#輸出說明-18" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>找零結果</p><h4 id="範例輸入1-12"><a href="#範例輸入1-12" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs text">32<br>1 10 5<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-12"><a href="#範例輸出1-12" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">3*$10 2*$1<br></code></pre></td></tr></table></figure><h4 id="範例輸入2-11"><a href="#範例輸入2-11" class="headerlink" title="範例輸入2"></a>範例輸入2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs text">78<br>2 3 4<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-13"><a href="#範例輸出2-13" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">19*$4 1*$2<br></code></pre></td></tr></table></figure><h4 id="題解-18"><a href="#題解-18" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-7e7e3982" role="button" aria-expanded="false" aria-controls="collapse-7e7e3982">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-7e7e3982">        <div class="fold-content">          <p>這題因為要統計硬幣數，所以用 <code>collections.defaultdict()</code> 比較方便（雖然 dict 也能解）</p> <p>首先，把輸入讀入，並將 <code>coins</code> 依大到小排（為了用最少硬幣）<br>並建立一個 defaultdict</p> <p>接下來，跑迴圈，把硬幣大到小跑<br>只要目前金額大於跑到的金額<br>代表可以拿一個該面額的硬幣找<br>就把硬幣數加一，並把目前金額減掉它<br>（這裡如果不是為了計數，也可以用取模）</p> <p>最後，將它依格輸出即可</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-keyword">from</span> collections <span class="hljs-keyword">import</span> defaultdict<br><br>n = <span class="hljs-built_in">int</span>(<span class="hljs-built_in">input</span>())<br>coins = <span class="hljs-built_in">list</span>(<span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split()))<br><br>coins.sort(reverse=<span class="hljs-literal">True</span>)<br><br>counter = defaultdict(<span class="hljs-built_in">int</span>)<br><br><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> coins:<br>    <span class="hljs-keyword">while</span> n &gt;= i:<br>        n -= i<br>        counter[i] += <span class="hljs-number">1</span><br><br><span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> counter.items():<br>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&#x27;<span class="hljs-subst">&#123;v&#125;</span>*$<span class="hljs-subst">&#123;k&#125;</span>&#x27;</span>, end=<span class="hljs-string">&#x27; &#x27;</span>)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div><h3 id="五、電影院座位安排"><a href="#五、電影院座位安排" class="headerlink" title="五、電影院座位安排"></a>五、電影院座位安排</h3><h4 id="題目-19"><a href="#題目-19" class="headerlink" title="題目"></a>題目</h4><ol><li>防疫期間，電影院規定影廳內同一列的兩位觀眾之間不能相鄰而坐，必須間隔至少一個位置，以降低疾病傳播的風險。</li><li>某天，電影院接到一群團體客人的訂位，在散客已經劃位的狀態下，需要依照防疫規定將他們安排在同一影廳內。</li><li>已知影廳為長方形，給定影廳的列數、行數、團體客人數量與散客的劃位狀況，請判斷能不能將團體客人「全數」安排進該影廳內。</li><li>以下圖為例，影廳有 5 列，每列有 9 個位置，填色區塊為散客已預訂座位。依照防疫規定，最多可容納 10 位的團體客人，位置如圖數字標記處。</li></ol><img src="/img/infomonth5.png" class=""><h4 id="輸入說明-19"><a href="#輸入說明-19" class="headerlink" title="輸入說明"></a>輸入說明</h4><p>第 1 列：輸入三個正整數，分別代表影廳列數 $R$、行數 $C$ 以及團體客人數量 $N$，數字之間以半行空白間隔（列數 $R$ 與行數 $C$ 皆不超過 20）<br>第 $2 ~ R+1$ 列：代表影廳每一列的散客劃位狀況，英文大寫 <code>X</code> 代表 已經訂位；大寫 <code>O</code> 代表可安排的座位</p><h4 id="輸出說明-19"><a href="#輸出說明-19" class="headerlink" title="輸出說明"></a>輸出說明</h4><p>若可將團體客人全數安排進該影廳，請輸出字串 <code>true</code>；否則輸出字串 <code>false</code></p><h4 id="範例輸入1-13"><a href="#範例輸入1-13" class="headerlink" title="範例輸入1"></a>範例輸入1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs text">5 9 10<br>OOOOXOOOO<br>OOXOOXOXO<br>OXOXOOXOX<br>OOXOXOXOX<br>OOOOOOOOX<br></code></pre></td></tr></table></figure><h4 id="範例輸出1-13"><a href="#範例輸出1-13" class="headerlink" title="範例輸出1"></a>範例輸出1</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">true<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-14"><a href="#範例輸出2-14" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs text">4 12 8<br>OOXOXOOXOXOO<br>XOXOOXOXOOOO<br>OOOOXOXOXOOO<br>XOXOXOXOOXOX<br></code></pre></td></tr></table></figure><h4 id="範例輸出2-15"><a href="#範例輸出2-15" class="headerlink" title="範例輸出2"></a>範例輸出2</h4><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs text">false<br></code></pre></td></tr></table></figure><h4 id="題解-19"><a href="#題解-19" class="headerlink" title="題解"></a>題解</h4>    <div class="fold">      <div class="fold-title fold-info collapsed" data-toggle="collapse" href="#collapse-38125c6c" role="button" aria-expanded="false" aria-controls="collapse-38125c6c">        <div class="fold-arrow">▶</div> 解答      </div>      <div class="fold-collapse collapse" id="collapse-38125c6c">        <div class="fold-content">          <p>這題其實不算簡單</p> <p>首先，因為題目只要求要看左右，不用管前後<br>所以我們不一定要一次讀入所有資料<br>也可以逐行處理</p> <p>因為已經有客人了，我們可以直接把所有已經有人的位子左右標成不能坐<br>注意到，這裡我用 <code>X</code> 來標原客人，<code>N</code> 標記左右不可坐座位<br>因為如果都標成 <code>X</code>，那只要有一個客人 <code>X</code>，把他右邊也標成 <code>X</code> 後，會隨迴圈把右邊整串變成 <code>X</code><br>所以記得換一種符號（或者也可以試著跳過下個位子的判斷，但還要寫邊界，比較麻煩）</p> <p>做完標記後，就可以來一個個分配位子了<br>可以用數的，但會比較麻煩，只不過效率可能可以好一點？<br>或者像我一樣，直接硬跑迴圈<br>把位子一個個數下去，最後再看剩下實際可坐（即考量所有人皆左右無人）座位數和要分配的人數即可</p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><code class="hljs python">r, c, n = <span class="hljs-built_in">map</span>(<span class="hljs-built_in">int</span>, <span class="hljs-built_in">input</span>().split())<br>ans = <span class="hljs-number">0</span><br><br><span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(r):<br>    seats = <span class="hljs-built_in">list</span>(<span class="hljs-built_in">input</span>().strip())<br><br>    <span class="hljs-comment">#將已有客人的座位左右標為不可用</span><br>    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(c):<br>        <span class="hljs-keyword">if</span> seats[i] == <span class="hljs-string">&#x27;X&#x27;</span>:<br>            <span class="hljs-keyword">if</span> i &gt; <span class="hljs-number">0</span>:<br>                seats[i-<span class="hljs-number">1</span>] = <span class="hljs-string">&#x27;N&#x27;</span><br>            <span class="hljs-keyword">if</span> i &lt; c - <span class="hljs-number">1</span>:<br>                seats[i+<span class="hljs-number">1</span>] = <span class="hljs-string">&#x27;N&#x27;</span><br><br>    <span class="hljs-comment">#在可用座位上以不相鄰方式安排</span><br>    i = <span class="hljs-number">0</span><br>    <span class="hljs-keyword">while</span> i &lt; c:<br>        <span class="hljs-keyword">if</span> seats[i] == <span class="hljs-string">&#x27;O&#x27;</span>:<br>            ans += <span class="hljs-number">1</span><br>            i += <span class="hljs-number">2</span> <span class="hljs-comment">#隔一格</span><br>        <span class="hljs-keyword">else</span>:<br>            i += <span class="hljs-number">1</span><br><br><span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;true&#x27;</span> <span class="hljs-keyword">if</span> n &lt;= ans <span class="hljs-keyword">else</span> <span class="hljs-string">&#x27;false&#x27;</span>)<br></code></pre></td></tr></table></figure>         </div>      </div>    </div>]]>
    </content>
    <id>https://chuen666666.com/%E8%B3%87%E8%A8%8A%E6%9C%88%E8%B3%87%E8%A8%8A%E6%87%89%E7%94%A8%E6%8A%80%E8%83%BD%E7%AB%B6%E8%B3%BD%E2%80%94%E2%80%94%E8%80%83%E5%8F%A4%E9%A1%8C%EF%BC%88%E9%A1%8C%E7%9B%AE+%E8%A9%B3%E8%A7%A3%EF%BC%89/</id>
    <link href="https://chuen666666.com/%E8%B3%87%E8%A8%8A%E6%9C%88%E8%B3%87%E8%A8%8A%E6%87%89%E7%94%A8%E6%8A%80%E8%83%BD%E7%AB%B6%E8%B3%BD%E2%80%94%E2%80%94%E8%80%83%E5%8F%A4%E9%A1%8C%EF%BC%88%E9%A1%8C%E7%9B%AE+%E8%A9%B3%E8%A7%A3%EF%BC%89/"/>
    <published>2025-12-29T03:44:51.000Z</published>
    <summary>資訊月資訊應用技能競賽的考古題，題目、答案、解題思路</summary>
    <title>資訊月資訊應用技能競賽——考古題（題目 + 詳解）</title>
    <updated>2026-05-17T09:26:02.802Z</updated>
  </entry>
</feed>
