<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>基礎語法 on Piau 的筆記本</title><link>https://piaublog.com/tags/%E5%9F%BA%E7%A4%8E%E8%AA%9E%E6%B3%95/</link><description>Recent content in 基礎語法 on Piau 的筆記本</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><copyright>Licensed under CC BY-NC-SA 4.0 © 2024-2025 Piau.</copyright><lastBuildDate>Tue, 25 Nov 2025 12:29:51 +0800</lastBuildDate><atom:link href="https://piaublog.com/tags/%E5%9F%BA%E7%A4%8E%E8%AA%9E%E6%B3%95/index.xml" rel="self" type="application/rss+xml"/><item><title>CSES-1068 Weird Algorithm</title><link>https://piaublog.com/problem-set/cses/introductory-problems/1068/</link><pubDate>Tue, 25 Nov 2025 12:29:51 +0800</pubDate><guid>https://piaublog.com/problem-set/cses/introductory-problems/1068/</guid><description>&lt;p&gt;&lt;blockquote&gt;
&lt;p&gt;題目連結：&lt;a href="https://cses.fi/problemset/task/1068" target="_blank" rel="noopener"&gt;https://cses.fi/problemset/task/1068&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;h2 class="relative group"&gt;題意
&lt;div id="題意" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%a1%8c%e6%84%8f" aria-label="定位點"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;題目會給定一個正整數 \( n \)。&lt;br&gt;
如果 \( n \) 是偶數，就把它除以 2；如果 \( n \) 是奇數，就把它乘 3 再加 1。&lt;br&gt;
就這樣一直重複操作，直到 \( n \) 變成 1 為止，然後我們要印出這當中經歷過的所有數字。&lt;/p&gt;
&lt;h2 class="relative group"&gt;思路
&lt;div id="思路" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%80%9d%e8%b7%af" aria-label="定位點"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;這題其實就是有名的「考拉茲猜想」。&lt;br&gt;
不過我們不用去管背後的數學定理，既然題目都把規則寫得很清楚了，就直接用迴圈去模擬整個過程。&lt;/p&gt;
&lt;p&gt;唯一要注意的是數字大小的變化。雖然一開始 \( n \le 10^6 \)，但在這個不斷乘 3 加 1 的過程中，很容易就會超過 32 位元整數的上限。&lt;br&gt;
這也是為什麼很多新手會在這裡卡住。只要一開始就把變數型態宣告為 &lt;code&gt;long long&lt;/code&gt;，就可以輕鬆躲過測資的陷阱。&lt;/p&gt;</description></item></channel></rss>