程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#--第2周實驗--任務11--編寫一個控制台應用--1列數規則如下:1,1,2,3,5,8,13,21,34...求

C#--第2周實驗--任務11--編寫一個控制台應用--1列數規則如下:1,1,2,3,5,8,13,21,34...求

編輯:C#入門知識

/* (程序頭部注釋開始)
* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙台大學計算機學院學生
* All rights reserved.
* 文件名稱:一列數規則如下:1,1,2,3,5,8,13,21,34...求第30位數是多少?(用遞歸算法實現)
* 作 者: 雷恆鑫
* 完成日期: 2012 年 09 月 09 日
* 版 本 號: V1.0
* 對任務及求解方法的描述部分
* 輸入描述:
* 問題描述:
* 程序輸出:
* 程序頭部的注釋結束
*/
 
[csharp] 
<span style="font-size:24px;">using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
 
namespace ConsoleApplication_do_while 

    class Program 
    { 
        static void Main(string[] args) 
        { 
            Console.WriteLine("這是一個“一列數規則如下:1,1,2,3,5,8,13,21,34...求第30位數是多少?”的程序"); 
            Console.Write("請問您想求第幾位數?"); 
            int number = int.Parse(Console.ReadLine()); 
            int m = f(number);//遞歸函數 
            Console.WriteLine("第{0}位數為:{1}", number, m); 
            Console.ReadKey(); 
        } 
 
        static int f(int number)//遞歸就是在過程或函數裡調用自身。  
        { 
            int fact; 
            if (number == 0 || number == 1)//使用遞歸策略時,必須有一個明確的遞歸結束條件,稱為遞歸出口。 
            { 
                if (number == 0)//當number等於2是有0這種情況出現 
                { 
                    fact = 0; 
                } 
                else 
                { 
                    fact = 1; 
                } 
            } 
            else 
            { 
                fact = f(number - 1) + f(number - 2); 
            } 
 
            return fact; 
        } 
    } 

            
     
 
</span> 

運行結果:
 

 

 

 
 
經驗積累:
1.
遞歸是計算機科學中的一種重要方法。
能采用遞歸描述的算法通常有這樣的特征:為求解規模為N的問題,設法將它分解成規模較小的問題,然後從這些小問題的解方便地構造出大問題的解,並且這些規模較小的問題也能采用同樣的分解和綜合方法,分解成規模更小的問題,並從這些更小問題的解構造出規模較大問題的解。特別地,當規模N=1時,能直接得解。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved