herrDeng網內搜尋
自訂搜尋
Ads
訂閱:
張貼留言 (Atom)
熱門文章
-
url="https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=20220330&stockNo=2330"
-
教育部為提昇全民資安素養與電腦防護能力,本部於101年9月5日至11月5日舉辦「全民資安素養自我評量」活動,請在活動期間內踴躍上網檢測資訊安全素養認知程度,並有機會參與抽獎,詳情請參閱活動網站(網址: https://isafe.moe.edu.tw/event
-
python pandas對黃金、外匯匯率的爬蟲練習,並使用matplotlib.pyplot的函數plot, scatter做資料視覺化處理,採用numpy的統計函數,分析黃金價格波動與歐元走勢的關聯。
-
Python C C++ 2 pointer速解Leetcode 2337 Move Pieces to Obtain a String 多日Leetcode的問題都可用2-pointer法來解,今日2337. Move Pieces to Obtain a String也不例...
-
你會用C的算子sizeof?
87 則留言:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("f({0}={1}", n, f(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for(int n=0; n<=40; n++)
Console.WriteLine("ff({0})={1}",n,ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("f({0}={1}", n, f(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _0429
{
class Program
{
static int ff(int n)
{
if (n==0||n==1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if(n==0||n==1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}",n,ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace F
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
for (int n = 0; n <= 40; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if (n ==0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={0};", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _2020._04._29
{
class Program
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _2020._04._29
{
class Program
{
static int ff(int n)
{
if(n==0||n==1)
return n;
else
return ff(n-1) + ff(n-2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for(int n=0; n<=40; n++)
Console.WriteLine("ff({0})={1}" , n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for(int n=0;n<=50;n++)
Console.WriteLine("ff({0})={1}",n, ff(n));
Console.Read();
}
}
}
之所以能夠透過遞回函式,是因為函式堆疊(stack)在執行時有一個特性,當某個函式呼叫另一個函式時,需要等到裡面的函式執行完產生結果後,才會繼續回來執行自己的函式內容,而這樣的情況也被稱作 後進先出(Last in First Out, LIFO)
也就是說,當我們在 first() 裡呼叫 last() 時,需要等 last() 執行完後,才會回到 first() 繼續執行。
另外,在寫遞回函式的時候一定記得設定終止條件,否則很容易跳不出來,導致無窮迴圈的情況產生。
之所以能夠透過遞回函式,是因為函式堆疊(stack)在執行時有一個特性,當某個函式呼叫另一個函式時,需要等到裡面的函式執行完產生結果後,才會繼續回來執行自己的函式內容,而這樣的情況也被稱作 後進先出(Last in First Out, LIFO)
也就是說,當我們在 first() 裡呼叫 last() 時,需要等 last() 執行完後,才會回到 first() 繼續執行。
另外,在寫遞回函式的時候一定記得設定終止條件,否則很容易跳不出來,導致無窮迴圈的情況產生。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("費式數列");
for (int n = 0; n <= 40; n++)
Console.WriteLine("f({0})={1}", n, f(n));
Console.Read();
}
}
}
1.
我們在函數 F(n) 中又呼叫函數 F(n-1) 及 F(n-2),像這樣在函數中又呼叫自己的寫法,就叫做「遞迴 Recursion」,而這種函數就稱為「遞迴函數 Recursive Function」。遞迴函數一開頭要先設定結束條件,否則會無窮循環下去,而遞迴呼叫自己的時候,必須改變它的參數,例如:
int R(int n)
{
if(結束條件成立) return 預設值;
return R( n 的運算式 );
}
2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace F
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
for (int n = 0; n <= 40; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("費式數列");
for (int n = 0; n <= 40; n++)
Console.WriteLine("f({0})={1}", n, f(n));
Console.Read();
}
}
}
遞迴(英語:Recursion),又譯為遞歸,在數學與電腦科學中,是指在函數的定義中使用函數自身的方法。遞迴一詞還較常用於描述以自相似方法重複事物的過程。例如,當兩面鏡子相互之間近似平行時,鏡中巢狀的圖像是以無限遞迴的形式出現的。也可以理解為自我複製的過程。
函數 F(n) 中又呼叫函數 F(n-1) 及 F(n-2),像這樣在函數中又呼叫自己的寫法,就叫做「遞迴 Recursion」,而這種函數就稱為「遞迴函數 Recursive Function」。遞迴函數一開頭要先設定結束條件,否則會無窮循環下去,而遞迴呼叫自己的時候,必須改變它的參數,例如:
int R(int n)
{
if(結束條件成立) return 預設值;
return R( n 的運算式 );
}
-------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _123
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1)
return n;
else
return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("費氏數列");
for (int n = 0; n <= 40; n++)
Console.WriteLine("f({0})={1}", n, f(n));
Console.Read();
}
}
}
說明:費式數列的前兩項為 1、1,之後的每一項為前兩項之和,即 Fn=Fn-1+Fn-2,費式數列的前 10 項為:1、1、2、3、5、8、13、21、34、55。由使用者輸入一個正數數 n ( n < 40 ),計算出費式數列的第 n 項之值並輸出之。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 40; n++)
Console.WriteLine("ff({0})={1}",n,ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for(int n=0;n<=50; n++)
Console .WriteLine ("ff({0})={1}",n,ff(n));
Console.Read();
}
}
}
剛才我們在函數 F(n) 中又呼叫函數 F(n-1) 及 F(n-2),像這樣在函數中又呼叫自己的寫法,就叫做「遞迴 Recursion」,而這種函數就稱為「遞迴函數 Recursive Function」。遞迴函數一開頭要先設定結束條件,否則會無窮循環下去,而遞迴呼叫自己的時候,必須改變它的參數,例如:
int R(int n)
{
if(結束條件成立) return 預設值;
return R( n 的運算式 );
}
_______________________________________________________________
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 費式係數
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個計算費式數列的程式");
for (int n = 0; n <= 40; n++)
Console.WriteLine("ff({0})={1}",n, ff(n));
Console.Read();
}
}
}
1.何謂遞迴函數?
A:在數學和電腦科學中,遞迴指由一種(或多種)簡單的基本情況定義的一類物件或方法,並規定其他所有情況都能被還原為其基本情況。
1.
遞迴函數就是在函數的定義裏面呼叫自己的函數。遞迴函數至少需要包含終止條件與遞迴條件兩個 部份。遞迴可以讓程式與數學定義相契合,程式碼較為簡潔易懂。遞迴可能會重複計算相同的東西多次,造成效能的浪費。
2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 40; n++)
Console.WriteLine("ff({0})={1})", n, ff(n));
Console.Read();
}
}
}
遞回函式(recursive function)簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如 5! = 5 x 4 x 3 x 2 x 1。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for(int n=0;n<=50; n++)
Console .WriteLine ("ff({0})={1}",n,ff(n));
Console.Read();
}
}
}
遞回函式(recursive function)簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如 5! = 5 x 4 x 3 x 2 x 1。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 40; n++)
Console.WriteLine("ff({0})={1}",n,ff(n));
Console.Read();
}
}
}
遞迴函數說明
剛才我們在函數 F(n) 中又呼叫函數 F(n-1) 及 F(n-2),像這樣在函數中又呼叫自己的寫法,就叫做「遞迴 Recursion」,而這種函數就稱為「遞迴函數 Recursive Function」。遞迴函數一開頭要先設定結束條件,否則會無窮循環下去,而遞迴呼叫自己的時候,必須改變它的參數,例如:
int R(int n)
{
if(結束條件成立) return 預設值;
return R( n 的運算式 );
}
課堂實作
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
1.
剛才我們在函數 F(n) 中又呼叫函數 F(n-1) 及 F(n-2),像這樣在函數中又呼叫自己的寫法,就叫做「遞迴 Recursion」,而這種函數就稱為「遞迴函數 Recursive Function」。遞迴函數一開頭要先設定結束條件,否則會無窮循環下去,而遞迴呼叫自己的時候
2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for(int n=0;n<=50;n++)
Console.WriteLine("ff({0})={1}",n, ff(n));
Console.Read();
}
}
}
遞回函式(recursive function)簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。
1.
遞回函式簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算。
2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace T0429
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1)
return n;
else
return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("算費式數列程式");
for (int n = 0; n <= 40; n++)
Console.WriteLine("f({0})={1}", n, f(n));
Console.Read();
}
}
}
1.遞回簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算。
2.↓
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace T0429
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1)
return n;
else
return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("算費式數列程式");
for (int n = 0; n <= 40; n++)
Console.WriteLine("f({0})={1}", n, f(n));
Console.Read();
}
}
}
1.遞迴就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算
2.↓
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1)
return n;
else
return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("算費式數列的程式");
for (int n = 0; n <= 40; n++)
Console.WriteLine("f({0})={1}", n, f(n));
Console.Read();
}
}
}
說明:費式數列的前兩項為 1、1,之後的每一項為前兩項之和,即 Fn=Fn-1+Fn-2,費式數列的前 10 項為:1、1、2、3、5、8、13、21、34、55。由使用者輸入一個正數數 n ( n < 40 ),計算出費式數列的第 n 項之值並輸出之。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
1.遞回函數簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如 5! = 5 x 4 x 3 x 2 x 1。
2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("你好");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
所謂的遞迴函式, 簡單地說就是一個呼叫自己的函式。
每一個 C 程式都是由函式組成的, 由 main() 函式開始執行, main() 函式處理整個問題, 為了降低程式的複雜度, 通常將問題依其特性分解為許多部份, main() 函式呼叫許多獨立的函式來解決個別的問題, 一層一層地分工合作下去。
說明:費式數列的前兩項為 1、1,之後的每一項為前兩項之和,即 Fn=Fn-1+Fn-2,費式數列的前 10 項為:1、1、2、3、5、8、13、21、34、55。由使用者輸入一個正數數 n ( n < 40 ),計算出費式數列的第 n 項之值並輸出之。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
說明:費式數列的前兩項為 1、1,之後的每一項為前兩項之和,即 Fn=Fn-1+Fn-2,費式數列的前 10 項為:1、1、2、3、5、8、13、21、34、55。由使用者輸入一個正數數 n ( n < 40 ),計算出費式數列的第 n 項之值並輸出之。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
說明:費式數列的前兩項為 1、1,之後的每一項為前兩項之和,即 Fn=Fn-1+Fn-2,費式數列的前 10 項為:1、1、2、3、5、8、13、21、34、55。由使用者輸入一個正數數 n ( n < 40 ),計算出費式數列的第 n 項之值並輸出之。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
遞回函式(recursive function)簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如 5! = 5 x 4 x 3 x 2 x 1。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fibomacci
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
說明:費式數列的前兩項為 1、1,之後的每一項為前兩項之和,即 Fn=Fn-1+Fn-2,費式數列的前 10 項為:1、1、2、3、5、8、13、21、34、55。由使用者輸入一個正數數 n ( n < 40 ),計算出費式數列的第 n 項之值並輸出之。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine();
for (int n = 0; n <= 50; n++)
Console.WriteLine("f({0}={1}", n, ff(n));
Console.Read();
}
}
}
1.又譯為遞歸,在數學與電腦科學中,是指在函數的定義中使用函數自身的方法。
遞迴一詞還較常用於描述以自相似方法重複事物的過程。
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("費式數列");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
遞回函式(recursive function)簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如 5! = 5 x 4 x 3 x 2 x 1。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fibomacci
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
遞回函式(recursive function)簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如 5! = 5 x 4 x 3 x 2 x 1。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fibomacci
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
遞回函式(recursive function)簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如 5! = 5 x 4 x 3 x 2 x 1。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fibomacci
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
遞回函式(recursive function)簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如 5! = 5 x 4 x 3 x 2 x 1。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fibomacci
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("f({0}={1}", n, f(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _12333
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n < 40; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _12333
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n < 40; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("f({0}={1}", n, f(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("f({0}={1}", n, f(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("f({0}={1}", n, f(n));
Console.Read();
}
}
}
之所以能夠透過遞回函式,是因為函式堆疊(stack)在執行時有一個特性,當某個函式呼叫另一個函式時,需要等到裡面的函式執行完產生結果後,才會繼續回來執行自己的函式內容,而這樣的情況也被稱作 後進先出(Last in First Out, LIFO)
之所以能夠透過遞回函式,是因為函式堆疊(stack)在執行時有一個特性,當某個函式呼叫另一個函式時,需要等到裡面的函式執行完產生結果後,才會繼續回來執行自己的函式內容,而這樣的情況也被稱作 後進先出(Last in First Out, LIFO)
之所以能夠透過遞回函式,是因為函式堆疊(stack)在執行時有一個特性,當某個函式呼叫另一個函式時,需要等到裡面的函式執行完產生結果後,才會繼續回來執行自己的函式內容,而這樣的情況也被稱作 後進先出(Last in First Out, LIFO)
之所以能夠透過遞回函式,是因為函式堆疊(stack)在執行時有一個特性,當某個函式呼叫另一個函式時,需要等到裡面的函式執行完產生結果後,才會繼續回來執行自己的函式內容,而這樣的情況也被稱作 後進先出(Last in First Out, LIFO)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _12333
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n < 40; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _12333
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n < 40; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _12333
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n < 40; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _12333
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n < 40; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _12333
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n < 40; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _12333
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1) return n;
else return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n < 40; n++)
Console.WriteLine("ff({0})={1}", n, ff(n));
Console.Read();
}
}
}
1. 何謂遞迴函數?
遞迴函數的定義,就是以自己本身來呼叫自己本身,如果沒有終止條件,程式是跑不完的,所以需要包含終止條件與遞迴條件兩個部份。
之所以能夠透過遞回函式,是因為函式堆疊(stack)在執行時有一個特性,當某個函式呼叫另一個函式時,需要等到裡面的函式執行完產生結果後,才會繼續回來執行自己的函式內容。
2. 實作費氏數列,用遞迴方法
namespace fib
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費氏數列的程式");
for (int n=0;n<=40;n++)
Console.WriteLine("ff({0})={1}",n,ff(n));
Console.Read();
}
}
}
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if(n == 0 || n == 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, f(n));
Console.Read();
}
}
}
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if(n == 0 || n == 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, f(n));
Console.Read();
}
}
}
簡單地說就是一個呼叫自己的函式。
每一個 C 程式都是由函式組成的, 由 main() 函式開始執行, main() 函式處理整個問題, 為了降低程式的複雜度, 通常將問題依其特性分解為許多部份, main() 函式呼叫許多獨立的函式來解決個別的問題, 一層一層地分工合作下去。
遞回函式(recursive function)簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如 5! = 5 x 4 x 3 x 2 x 1。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _123
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1)
return n;
else
return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("費氏數列");
for (int n = 0; n <= 40; n++)
Console.WriteLine("f({0})={1}", n, f(n));
Console.Read();
}
}
}
在函數 F(n) 中又呼叫函數 F(n-1) 及 F(n-2),像這樣在函數中又呼叫自己的寫法,就叫做「遞迴 Recursion」,而這種函數就稱為「遞迴函數 Recursive Function」。遞迴函數一開頭要先設定結束條件,否則會無窮循環下去,而遞迴呼叫自己的時候,必須改變它的參數,例如:
int R(int n)
{
if(結束條件成立) return 預設值;
return R( n 的運算式 );
}
所謂的遞迴函式, 簡單地說就是一個呼叫自己的函式。
每一個 C 程式都是由函式組成的, 由 main() 函式開始執行, main() 函式處理整個問題, 為了降低程式的複雜度, 通常將問題依其特性分解為許多部份, main() 函式呼叫許多獨立的函式來解決個別的問題, 一層一層地分工合作下去。 因此函式呼叫其它函式是理所當然的, 但是呼叫自己會不會有些矛盾呢?
所謂的遞迴函式, 簡單地說就是一個呼叫自己的函式。
每一個 C 程式都是由函式組成的, 由 main() 函式開始執行, main() 函式處理整個問題, 為了降低程式的複雜度, 通常將問題依其特性分解為許多部份, main() 函式呼叫許多獨立的函式來解決個別的問題, 一層一層地分工合作下去。 因此函式呼叫其它函式是理所當然的, 但是呼叫自己會不會有些矛盾呢?
所謂的遞迴函式, 簡單地說就是一個呼叫自己的函式。
每一個 C 程式都是由函式組成的, 由 main() 函式開始執行, main() 函式處理整個問題, 為了降低程式的複雜度, 通常將問題依其特性分解為許多部份, main() 函式呼叫許多獨立的函式來解決個別的問題, 一層一層地分工合作下去。 因此函式呼叫其它函式是理所當然的, 但是呼叫自己會不會有些矛盾呢?
所謂的遞迴函式, 簡單地說就是一個呼叫自己的函式。
每一個 C 程式都是由函式組成的, 由 main() 函式開始執行, main() 函式處理整個問題, 為了降低程式的複雜度, 通常將問題依其特性分解為許多部份, main() 函式呼叫許多獨立的函式來解決個別的問題, 一層一層地分工合作下去。 因此函式呼叫其它函式是理所當然的, 但是呼叫自己會不會有些矛盾呢?
所謂的遞迴函式, 簡單地說就是一個呼叫自己的函式。
每一個 C 程式都是由函式組成的, 由 main() 函式開始執行, main() 函式處理整個問題, 為了降低程式的複雜度, 通常將問題依其特性分解為許多部份, main() 函式呼叫許多獨立的函式來解決個別的問題, 一層一層地分工合作下去。 因此函式呼叫其它函式是理所當然的, 但是呼叫自己會不會有些矛盾呢?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if (n ==0 || n== 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("f{0}={1}", n, f(n));
Console.Read();
}
}
}
所謂的遞迴函式, 簡單地說就是一個呼叫自己的函式。
每一個 C 程式都是由函式組成的, 由 main() 函式開始執行, main() 函式處理整個問題, 為了降低程式的複雜度, 通常將問題依其特性分解為許多部份, main() 函式呼叫許多獨立的函式來解決個別的問題, 一層一層地分工合作下去。 因此函式呼叫其它函式是理所當然的, 但是呼叫自己會不會有些矛盾呢?
什麼是遞回函式(recursion)
遞回函式(recursive function)簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如 5! = 5 x 4 x 3 x 2 x 1。
之所以能夠透過遞回函式,是因為函式堆疊(stack)在執行時有一個特性,當某個函式呼叫另一個函式時,需要等到裡面的函式執行完產生結果後,才會繼續回來執行自己的函式內容,而這樣的情況也被稱作 後進先出(Last in First Out, LIFO)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static int f(int n)
{
if (n == 0 || n == 1)
return n;
else
return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("f(20)=" + f(20));
Console
Console.Read();
}
}
}
什麼是遞回函式(recursion)
遞回函式(recursive function)簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如 5! = 5 x 4 x 3 x 2 x 1。
之所以能夠透過遞回函式,是因為函式堆疊(stack)在執行時有一個特性,當某個函式呼叫另一個函式時,需要等到裡面的函式執行完產生結果後,才會繼續回來執行自己的函式內容,而這樣的情況也被稱作 後進先出(Last in First Out, LIFO)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if (n ==0 || n== 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0;n <= 50; n++)
Console.WriteLine("f{0}={1}", n, f(n));
Console.Read();
}
}
}
什麼是遞回函式(recursion)
遞回函式(recursive function)簡單來說就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如 5! = 5 x 4 x 3 x 2 x 1。
之所以能夠透過遞回函式,是因為函式堆疊(stack)在執行時有一個特性,當某個函式呼叫另一個函式時,需要等到裡面的函式執行完產生結果後,才會繼續回來執行自己的函式內容,而這樣的情況也被稱作 後進先出(Last in First Out, LIFO)
數 F(n) 中又呼叫函數 F(n-1) 及 F(n-2),像這樣在函數中又呼叫自己的寫法,就叫做「遞迴 Recursion」,而這種函數就稱為「遞迴函數 Recursive Function」。遞迴函數一開頭要先設定結束條件,否則會無窮循環下去,而遞迴呼叫自己的時候,必須改變它的參數,例如:
int R(int n)
{
if(結束條件成立) return 預設值;
return R( n 的運算式 );
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for(int n=0; n<=40; n++)
Console.WriteLine("ff({0})={1}",n,ff(n));
Console.Read();
}
}
}
1. 何謂遞迴函數?
遞迴函數的定義,就是以自己本身來呼叫自己本身,如果沒有終止條件,程式是跑不完的,所以需要包含終止條件與遞迴條件兩個部份。
之所以能夠透過遞回函式,是因為函式堆疊(stack)在執行時有一個特性,當某個函式呼叫另一個函式時,需要等到裡面的函式執行完產生結果後,才會繼續回來執行自己的函式內容。
2. 實作費氏數列,用遞迴方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fib
{
class Program
{
static int ff(int n)
{
if (n == 0 || n == 1)
return n;
else
return ff(n - 1) + ff(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費氏數列的程式");
for (int n=0;n<=40;n++)
Console.WriteLine("ff({0})={1}",n,ff(n));
Console.Read();
}
}
}
遞歸就是一個一個函式當中再去調用它自己,其中一個實際的範例就是階層的計算(階乘)。
階層聽起來可能很陌生,但是大家高中數學一定接觸過,例如5!= 5 x 4 x 3 x 2 x1。
之所以能夠透過遞進回傳函式,是因為函式堆疊(堆棧)在執行時有一個特性,當某個函式呼叫另一個函式時,需要等到裡面的函式執行完產生結果後,才會繼續回來執行自己的函式內容,而這樣的情況也被列入後進先出(LIFO後進先出)
namespace ConsoleApp1
{
class Program
{
static int f(int n)
{
if(n == 0 || n == 1) return n;
else return f(n - 1) + f(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine("這是一個算費式數列的程式");
for (int n = 0; n <= 50; n++)
Console.WriteLine("ff({0})={1}", n, f(n));
Console.Read();
}
}
}
遞迴函數就是在函數的定義裏面呼叫自己的函數。遞迴函數至少需要包含終止條件與遞迴條件兩個 部份。遞迴可以讓程式與數學定義相契合,程式碼較為簡潔易懂。遞迴可能會重複計算相同的東西多次,造成效能的浪費。
遞迴函數就是在函數的定義裏面呼叫自己的函數。遞迴函數至少需要包含終止條件與遞迴條件兩個 部份。遞迴可以讓程式與數學定義相契合,程式碼較為簡潔易懂。遞迴可能會重複計算相同的東西多次,造成效能的浪費。
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
static int fib(int n) {
if (n == 0 || n == 1)
//終止條件
return n;
else
return fib(n - 1) +
fib(n - 2);
}
static void Main(string[]args)
{
Console.WriteLine("f(20)=" + fib(20));
Console.Read();
}
}
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
static int fib(int n) {
if (n == 0 || n == 1)
//終止條件
return n;
else
return fib(n - 1) +
fib(n - 2);
}
static void Main(string[]args)
{
Console.WriteLine("f(20)=" + fib(20));
Console.Read();
}
}
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
static int fib(int n) {
if (n == 0 || n == 1)
//終止條件
return n;
else
return fib(n - 1) +
fib(n - 2);
}
static void Main(string[]args)
{
Console.WriteLine("f(20)=" + fib(20));
Console.Read();
}
}
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
static int fib(int n) {
if (n == 0 || n == 1)
//終止條件
return n;
else
return fib(n - 1) +
fib(n - 2);
}
static void Main(string[]args)
{
Console.WriteLine("f(20)=" + fib(20));
Console.Read();
}
}
張貼留言