mirror of
https://github.com/krahets/hello-algo.git
synced 2026-05-11 11:07:14 +08:00
deploy
This commit is contained in:
@@ -3653,7 +3653,15 @@
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">iteration.swift</span><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="p">[</span><span class="kd">class</span><span class="p">]{}</span><span class="o">-</span><span class="p">[</span><span class="kd">func</span><span class="p">]{</span><span class="n">forLoop</span><span class="p">}</span>
|
||||
<div class="highlight"><span class="filename">iteration.swift</span><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="cm">/* for 循环 */</span>
|
||||
<a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a><span class="kd">func</span> <span class="nf">forLoop</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span>
|
||||
<a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a> <span class="kd">var</span> <span class="nv">res</span> <span class="p">=</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a> <span class="c1">// 循环求和 1, 2, ..., n-1, n</span>
|
||||
<a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a> <span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="mi">1</span> <span class="p">...</span> <span class="n">n</span> <span class="p">{</span>
|
||||
<a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a> <span class="n">res</span> <span class="o">+=</span> <span class="n">i</span>
|
||||
<a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a> <span class="p">}</span>
|
||||
<a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a> <span class="k">return</span> <span class="n">res</span>
|
||||
<a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a><span class="p">}</span>
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
@@ -3673,7 +3681,7 @@
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">iteration.rs</span><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="cm">/* for 循环 */</span>
|
||||
<div class="highlight"><span class="filename">iteration.rs</span><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="cm">/* for 循环 */</span>
|
||||
<a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="k">fn</span> <span class="nf">for_loop</span><span class="p">(</span><span class="n">n</span>: <span class="kt">i32</span><span class="p">)</span><span class="w"> </span>-> <span class="kt">i32</span> <span class="p">{</span>
|
||||
<a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">res</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
|
||||
<a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="w"> </span><span class="c1">// 循环求和 1, 2, ..., n-1, n</span>
|
||||
@@ -3799,7 +3807,17 @@
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">iteration.swift</span><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a><span class="p">[</span><span class="kd">class</span><span class="p">]{}</span><span class="o">-</span><span class="p">[</span><span class="kd">func</span><span class="p">]{</span><span class="n">whileLoop</span><span class="p">}</span>
|
||||
<div class="highlight"><span class="filename">iteration.swift</span><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a><span class="cm">/* while 循环 */</span>
|
||||
<a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a><span class="kd">func</span> <span class="nf">whileLoop</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span>
|
||||
<a id="__codelineno-20-3" name="__codelineno-20-3" href="#__codelineno-20-3"></a> <span class="kd">var</span> <span class="nv">res</span> <span class="p">=</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-20-4" name="__codelineno-20-4" href="#__codelineno-20-4"></a> <span class="kd">var</span> <span class="nv">i</span> <span class="p">=</span> <span class="mi">1</span> <span class="c1">// 初始化条件变量</span>
|
||||
<a id="__codelineno-20-5" name="__codelineno-20-5" href="#__codelineno-20-5"></a> <span class="c1">// 循环求和 1, 2, ..., n-1, n</span>
|
||||
<a id="__codelineno-20-6" name="__codelineno-20-6" href="#__codelineno-20-6"></a> <span class="k">while</span> <span class="n">i</span> <span class="o"><=</span> <span class="n">n</span> <span class="p">{</span>
|
||||
<a id="__codelineno-20-7" name="__codelineno-20-7" href="#__codelineno-20-7"></a> <span class="n">res</span> <span class="o">+=</span> <span class="n">i</span>
|
||||
<a id="__codelineno-20-8" name="__codelineno-20-8" href="#__codelineno-20-8"></a> <span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span> <span class="c1">// 更新条件变量</span>
|
||||
<a id="__codelineno-20-9" name="__codelineno-20-9" href="#__codelineno-20-9"></a> <span class="p">}</span>
|
||||
<a id="__codelineno-20-10" name="__codelineno-20-10" href="#__codelineno-20-10"></a> <span class="k">return</span> <span class="n">res</span>
|
||||
<a id="__codelineno-20-11" name="__codelineno-20-11" href="#__codelineno-20-11"></a><span class="p">}</span>
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
@@ -3956,7 +3974,19 @@
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">iteration.swift</span><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a><span class="p">[</span><span class="kd">class</span><span class="p">]{}</span><span class="o">-</span><span class="p">[</span><span class="kd">func</span><span class="p">]{</span><span class="n">whileLoopII</span><span class="p">}</span>
|
||||
<div class="highlight"><span class="filename">iteration.swift</span><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a><span class="cm">/* while 循环(两次更新) */</span>
|
||||
<a id="__codelineno-32-2" name="__codelineno-32-2" href="#__codelineno-32-2"></a><span class="kd">func</span> <span class="nf">whileLoopII</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span>
|
||||
<a id="__codelineno-32-3" name="__codelineno-32-3" href="#__codelineno-32-3"></a> <span class="kd">var</span> <span class="nv">res</span> <span class="p">=</span> <span class="mi">0</span>
|
||||
<a id="__codelineno-32-4" name="__codelineno-32-4" href="#__codelineno-32-4"></a> <span class="kd">var</span> <span class="nv">i</span> <span class="p">=</span> <span class="mi">1</span> <span class="c1">// 初始化条件变量</span>
|
||||
<a id="__codelineno-32-5" name="__codelineno-32-5" href="#__codelineno-32-5"></a> <span class="c1">// 循环求和 1, 4, ...</span>
|
||||
<a id="__codelineno-32-6" name="__codelineno-32-6" href="#__codelineno-32-6"></a> <span class="k">while</span> <span class="n">i</span> <span class="o"><=</span> <span class="n">n</span> <span class="p">{</span>
|
||||
<a id="__codelineno-32-7" name="__codelineno-32-7" href="#__codelineno-32-7"></a> <span class="n">res</span> <span class="o">+=</span> <span class="n">i</span>
|
||||
<a id="__codelineno-32-8" name="__codelineno-32-8" href="#__codelineno-32-8"></a> <span class="c1">// 更新条件变量</span>
|
||||
<a id="__codelineno-32-9" name="__codelineno-32-9" href="#__codelineno-32-9"></a> <span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-32-10" name="__codelineno-32-10" href="#__codelineno-32-10"></a> <span class="n">i</span> <span class="o">*=</span> <span class="mi">2</span>
|
||||
<a id="__codelineno-32-11" name="__codelineno-32-11" href="#__codelineno-32-11"></a> <span class="p">}</span>
|
||||
<a id="__codelineno-32-12" name="__codelineno-32-12" href="#__codelineno-32-12"></a> <span class="k">return</span> <span class="n">res</span>
|
||||
<a id="__codelineno-32-13" name="__codelineno-32-13" href="#__codelineno-32-13"></a><span class="p">}</span>
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
@@ -4109,7 +4139,18 @@
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">iteration.swift</span><pre><span></span><code><a id="__codelineno-44-1" name="__codelineno-44-1" href="#__codelineno-44-1"></a><span class="p">[</span><span class="kd">class</span><span class="p">]{}</span><span class="o">-</span><span class="p">[</span><span class="kd">func</span><span class="p">]{</span><span class="n">nestedForLoop</span><span class="p">}</span>
|
||||
<div class="highlight"><span class="filename">iteration.swift</span><pre><span></span><code><a id="__codelineno-44-1" name="__codelineno-44-1" href="#__codelineno-44-1"></a><span class="cm">/* 双层 for 循环 */</span>
|
||||
<a id="__codelineno-44-2" name="__codelineno-44-2" href="#__codelineno-44-2"></a><span class="kd">func</span> <span class="nf">nestedForLoop</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">String</span> <span class="p">{</span>
|
||||
<a id="__codelineno-44-3" name="__codelineno-44-3" href="#__codelineno-44-3"></a> <span class="kd">var</span> <span class="nv">res</span> <span class="p">=</span> <span class="s">""</span>
|
||||
<a id="__codelineno-44-4" name="__codelineno-44-4" href="#__codelineno-44-4"></a> <span class="c1">// 循环 i = 1, 2, ..., n-1, n</span>
|
||||
<a id="__codelineno-44-5" name="__codelineno-44-5" href="#__codelineno-44-5"></a> <span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="mi">1</span> <span class="p">...</span> <span class="n">n</span> <span class="p">{</span>
|
||||
<a id="__codelineno-44-6" name="__codelineno-44-6" href="#__codelineno-44-6"></a> <span class="c1">// 循环 j = 1, 2, ..., n-1, n</span>
|
||||
<a id="__codelineno-44-7" name="__codelineno-44-7" href="#__codelineno-44-7"></a> <span class="k">for</span> <span class="n">j</span> <span class="k">in</span> <span class="mi">1</span> <span class="p">...</span> <span class="n">n</span> <span class="p">{</span>
|
||||
<a id="__codelineno-44-8" name="__codelineno-44-8" href="#__codelineno-44-8"></a> <span class="n">res</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="s">"(</span><span class="si">\(</span><span class="n">i</span><span class="si">)</span><span class="s">, </span><span class="si">\(</span><span class="n">j</span><span class="si">)</span><span class="s">), "</span><span class="p">)</span>
|
||||
<a id="__codelineno-44-9" name="__codelineno-44-9" href="#__codelineno-44-9"></a> <span class="p">}</span>
|
||||
<a id="__codelineno-44-10" name="__codelineno-44-10" href="#__codelineno-44-10"></a> <span class="p">}</span>
|
||||
<a id="__codelineno-44-11" name="__codelineno-44-11" href="#__codelineno-44-11"></a> <span class="k">return</span> <span class="n">res</span>
|
||||
<a id="__codelineno-44-12" name="__codelineno-44-12" href="#__codelineno-44-12"></a><span class="p">}</span>
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
@@ -4263,7 +4304,17 @@
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">recursion.swift</span><pre><span></span><code><a id="__codelineno-56-1" name="__codelineno-56-1" href="#__codelineno-56-1"></a><span class="p">[</span><span class="kd">class</span><span class="p">]{}</span><span class="o">-</span><span class="p">[</span><span class="kd">func</span><span class="p">]{</span><span class="n">recur</span><span class="p">}</span>
|
||||
<div class="highlight"><span class="filename">recursion.swift</span><pre><span></span><code><a id="__codelineno-56-1" name="__codelineno-56-1" href="#__codelineno-56-1"></a><span class="cm">/* 递归 */</span>
|
||||
<a id="__codelineno-56-2" name="__codelineno-56-2" href="#__codelineno-56-2"></a><span class="kd">func</span> <span class="nf">recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span>
|
||||
<a id="__codelineno-56-3" name="__codelineno-56-3" href="#__codelineno-56-3"></a> <span class="c1">// 终止条件</span>
|
||||
<a id="__codelineno-56-4" name="__codelineno-56-4" href="#__codelineno-56-4"></a> <span class="k">if</span> <span class="n">n</span> <span class="p">==</span> <span class="mi">1</span> <span class="p">{</span>
|
||||
<a id="__codelineno-56-5" name="__codelineno-56-5" href="#__codelineno-56-5"></a> <span class="k">return</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-56-6" name="__codelineno-56-6" href="#__codelineno-56-6"></a> <span class="p">}</span>
|
||||
<a id="__codelineno-56-7" name="__codelineno-56-7" href="#__codelineno-56-7"></a> <span class="c1">// 递:递归调用</span>
|
||||
<a id="__codelineno-56-8" name="__codelineno-56-8" href="#__codelineno-56-8"></a> <span class="kd">let</span> <span class="nv">res</span> <span class="p">=</span> <span class="n">recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<a id="__codelineno-56-9" name="__codelineno-56-9" href="#__codelineno-56-9"></a> <span class="c1">// 归:返回结果</span>
|
||||
<a id="__codelineno-56-10" name="__codelineno-56-10" href="#__codelineno-56-10"></a> <span class="k">return</span> <span class="n">n</span> <span class="o">+</span> <span class="n">res</span>
|
||||
<a id="__codelineno-56-11" name="__codelineno-56-11" href="#__codelineno-56-11"></a><span class="p">}</span>
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
@@ -4412,7 +4463,15 @@
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">recursion.swift</span><pre><span></span><code><a id="__codelineno-68-1" name="__codelineno-68-1" href="#__codelineno-68-1"></a><span class="p">[</span><span class="kd">class</span><span class="p">]{}</span><span class="o">-</span><span class="p">[</span><span class="kd">func</span><span class="p">]{</span><span class="n">tailRecur</span><span class="p">}</span>
|
||||
<div class="highlight"><span class="filename">recursion.swift</span><pre><span></span><code><a id="__codelineno-68-1" name="__codelineno-68-1" href="#__codelineno-68-1"></a><span class="cm">/* 尾递归 */</span>
|
||||
<a id="__codelineno-68-2" name="__codelineno-68-2" href="#__codelineno-68-2"></a><span class="kd">func</span> <span class="nf">tailRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="n">res</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span>
|
||||
<a id="__codelineno-68-3" name="__codelineno-68-3" href="#__codelineno-68-3"></a> <span class="c1">// 终止条件</span>
|
||||
<a id="__codelineno-68-4" name="__codelineno-68-4" href="#__codelineno-68-4"></a> <span class="k">if</span> <span class="n">n</span> <span class="p">==</span> <span class="mi">0</span> <span class="p">{</span>
|
||||
<a id="__codelineno-68-5" name="__codelineno-68-5" href="#__codelineno-68-5"></a> <span class="k">return</span> <span class="n">res</span>
|
||||
<a id="__codelineno-68-6" name="__codelineno-68-6" href="#__codelineno-68-6"></a> <span class="p">}</span>
|
||||
<a id="__codelineno-68-7" name="__codelineno-68-7" href="#__codelineno-68-7"></a> <span class="c1">// 尾递归调用</span>
|
||||
<a id="__codelineno-68-8" name="__codelineno-68-8" href="#__codelineno-68-8"></a> <span class="k">return</span> <span class="n">tailRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span> <span class="n">res</span><span class="p">:</span> <span class="n">res</span> <span class="o">+</span> <span class="n">n</span><span class="p">)</span>
|
||||
<a id="__codelineno-68-9" name="__codelineno-68-9" href="#__codelineno-68-9"></a><span class="p">}</span>
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
@@ -4560,7 +4619,17 @@
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">recursion.swift</span><pre><span></span><code><a id="__codelineno-80-1" name="__codelineno-80-1" href="#__codelineno-80-1"></a><span class="p">[</span><span class="kd">class</span><span class="p">]{}</span><span class="o">-</span><span class="p">[</span><span class="kd">func</span><span class="p">]{</span><span class="n">fib</span><span class="p">}</span>
|
||||
<div class="highlight"><span class="filename">recursion.swift</span><pre><span></span><code><a id="__codelineno-80-1" name="__codelineno-80-1" href="#__codelineno-80-1"></a><span class="cm">/* 斐波那契数列:递归 */</span>
|
||||
<a id="__codelineno-80-2" name="__codelineno-80-2" href="#__codelineno-80-2"></a><span class="kd">func</span> <span class="nf">fib</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span>
|
||||
<a id="__codelineno-80-3" name="__codelineno-80-3" href="#__codelineno-80-3"></a> <span class="c1">// 终止条件 f(1) = 0, f(2) = 1</span>
|
||||
<a id="__codelineno-80-4" name="__codelineno-80-4" href="#__codelineno-80-4"></a> <span class="k">if</span> <span class="n">n</span> <span class="p">==</span> <span class="mi">1</span> <span class="o">||</span> <span class="n">n</span> <span class="p">==</span> <span class="mi">2</span> <span class="p">{</span>
|
||||
<a id="__codelineno-80-5" name="__codelineno-80-5" href="#__codelineno-80-5"></a> <span class="k">return</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span>
|
||||
<a id="__codelineno-80-6" name="__codelineno-80-6" href="#__codelineno-80-6"></a> <span class="p">}</span>
|
||||
<a id="__codelineno-80-7" name="__codelineno-80-7" href="#__codelineno-80-7"></a> <span class="c1">// 递归调用 f(n) = f(n-1) + f(n-2)</span>
|
||||
<a id="__codelineno-80-8" name="__codelineno-80-8" href="#__codelineno-80-8"></a> <span class="kd">let</span> <span class="nv">res</span> <span class="p">=</span> <span class="n">fib</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="n">fib</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">2</span><span class="p">)</span>
|
||||
<a id="__codelineno-80-9" name="__codelineno-80-9" href="#__codelineno-80-9"></a> <span class="c1">// 返回结果 f(n)</span>
|
||||
<a id="__codelineno-80-10" name="__codelineno-80-10" href="#__codelineno-80-10"></a> <span class="k">return</span> <span class="n">res</span>
|
||||
<a id="__codelineno-80-11" name="__codelineno-80-11" href="#__codelineno-80-11"></a><span class="p">}</span>
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
|
||||
Reference in New Issue
Block a user