藍橋杯經典!C語言編程實例:這麼簡單的遞歸別說你不會!

2020-12-15 百家號

不關注《一碳科技》?那麼你會錯過很多乾貨哦!

前言

各位粉絲,實在是不好意思啦,從上一篇文章的發布距今已經有一個多星期了,不是不想發,而是實在太忙了,一直忙著跟舍友開發購物網站,一人擔起技術的「重擔」。雖然隔了好幾天沒有發布新的文章,但是陸陸續續還是有一些粉絲私信拿源碼的,所以小編今天就抽空給大帶來一篇簡單的C教程文章——求數N的階乘

這個比較簡單,各位就當做娛樂板塊來看啦

首先,我們來捋一捋,求數N的階乘,無非就是N(N-1)(N-2)(N-3)...1,從這裡我們可以發現一個規律,後面的一個數總比前面一個數少1,並且最後一個數字為1,他們跟公差為1的等差數列有點相似,所以我們很快就能想到用遞歸來解決這個問題。

但是我們如何利用遞歸呢?我可以從上面這個問題得知,遞歸函數的邊界條件為:當N變成1時,所以我們可以結合以上兩點得出遞歸函數的大概模型。

自身調用自身

利用遞歸函數自身調用自身的這一特點,我們可以設計一個函數,這個函數是我們所要求階乘的數N,並且它的返回值為當前N的值乘上(N-1)的階乘的值,當N減少到1是,處罰邊界條件開始返回,當它返回到第一級函數時,我們用printf()函數來輸出N的階乘!N。

簡單的算法

小編的這個求階乘的函數很簡單,僅僅由三行代碼組成,所以基礎不好的小夥伴也不用過於擔心。

首先在函數裡面寫一個IF判斷,判斷是否達到邊界條件,如果沒有達到則進入下一步。這個函數接受一個int類型的參數,也就是我們要求階乘的數N,以下是該函數的代碼。

結果測試

通過調試,我們可以看到正確的結果,例如這裡小編算的是10的階乘,而程序輸出的答案很明顯:3628800,通過查詢這個結果是對的,小夥伴也可以親自算一下哦。

新的乾貨

小編最近可能發布一些web前端開發的小乾貨哦,對這方面有興趣的可以關注《一碳科技》,即使掌握最新諮詢!

相關焦點

  • 你所不知道的C語言經典九大編程實例思想
    獲取更多精彩文章請關注云主宰蒼穹引言:對於學習計算機程式語言而言,一門程式語言的經典思想是十分重要的。這是一門計算機程式語言的特色優點,是其解決問題的經典思維。你所了解的C語言,有哪些經典的編程實例思想,歡迎下方留言交流!
  • 藍橋杯簡單java遞歸算法
    4月1號的藍橋杯比賽快來了,報了名的小編日夜操勞的準備著~~~只想默默地說一句,這個算法是真的難~已經不想吐槽它折磨我的這20天了~每當看到自己用很冗長的代碼完成題目java遞歸算法的5道小題。絕大多數程式語言支持函數的自調用,在這些語言中函數可以通過調用自身來進行遞歸。計算理論可以證明遞歸的作用可以完全取代循環,因此在很多函數程式語言(如Scheme)中習慣用遞歸來實現循環。
  • C語言的「遞歸函數」這麼難理解,為什麼不丟棄它呢?
    初學者在學習C語言的過程中,遇到「遞歸」的概念時,常常會感到迷惑。坦誠地說,「遞歸」在程式語言中的確是一個比較難理解的概念,而且「遞歸」能解決的問題,一般循環語句也能解決,從某種程度上來說,C語言中的「遞歸」和循環語句是等價的,既然如此,為什麼C語言不「丟棄」難以理解的「遞歸」呢?
  • 嵌入式系統高級C語言編程
    內容簡介  《嵌入式系統高級C語言編程》將主要介紹針對嵌入式系統的基於C語言的軟體項目開發的流程,較為複雜的c語言編程知識和技巧,編程風格和調試習慣
  • 100個C語言編程實例分析
    全面、系統地講述了C語言各個方面的知識點和程序設計的基本方法,對100個典型實例的分析和講解,以及編寫程序過程中值得注意的地方,內容深入淺出,通俗易懂
  • C語言簡單編程速成
    例如,C 語言的特性之一是數組,但是它不提供字典(除非你自己寫一個)。當你學習 C 語言時,你會學習編程的基礎組成部分,它可以幫助你認識到如今的程式語言的改進及其的精心設計。因為 C 語言是一種最小化的程式語言,你的應用程式很可能會獲得性能上的提升,這在其它許多程式語言中是看不到的。
  • 學習C語言必看的最經典書籍
    、提高、開發、拓展全攻略》  這本比較好的c語言學習書籍從實際應用入手,以實驗過程和實驗現象為主導,循序漸進地講述51單片機c語言編程方法以及51單片機的硬體結構和功能應用。本學習c語言必看的最經典書籍內容豐富,實用性強,書中大部分內容均來自科研工作及教學實踐,許多c語言代碼可以直接應用到工程項目中。本書配套光碟提供13講近30學時的教學視頻和本書實例代碼,可使讀者更快更好地掌握單片機知識和應用技能。這本比較好的c語言學習書籍作者還可提供與本書配套的單片機實驗板。
  • 學習編程道路上的入門書籍之C篇
    學習編程專欄連載編程學習編程道路上的入門書籍之C篇,此篇內容將包含一些算法以及數據結構相關內容,文章中的所有推薦的書籍均來自知乎社區大牛力薦書籍、豆瓣評分較高書籍、各語言社區比較熱門書籍以及京東、亞馬遜、噹噹熱銷書籍的重合書籍。
  • 嵌入式C語言編程規範
    二:為編寫出高質量嵌入式軟體,從嵌入式軟體安全及可靠性出發,本規範對由於C語言標準、C語言本身、C編譯器及個人理解導致的潛在危險進行說明及規避。0.3 適用範圍本規範適用於XXX股份有限公司儀表臺秤產品部嵌入式軟體的開發,也對其他嵌入式軟體開發起一定的指導作用。0.4 術語定義0.4.1 規範術語原則:編程時必須堅持的指導思想。
  • LabVIEW編程實例:計算階乘,學習for循環+移位寄存器+遞歸調用
    也可以用遞歸方式定義為如下形式:n!=(n-1)!×n,且0!=1根據這兩種定義方式,下面給出在LabVIEW中編程實現求解n!的兩種方法。對於本例要求計算n的階乘,因為在程序運行中要調用自身,所以要將其設置為子程序,即在LabVIEW編程環境的圖標/連接口區域定義該VI的輸入輸出參數,本例參數比較簡單,在前面板中設計一個輸入控制項n、一個輸出控制項n!
  • 程式設計師編程之路的基礎C語言
    尤其是考C語言的小夥伴,小編用這兩三年的編程知識為你們在考前突擊突擊,希望能夠有點用處,至於office,小編覺得無能為力。。。字太多,看的頭疼~~~ 作者:浪潮之巔的小蘿蔔頭(純手打,求支持!)編程完成後,存檔,編譯,連接,執行,按題目要求輸入,得到要求的結果就有24分,否則就是0分。相信這些大家應該都有所了解了,那麼其次我就簡單的對各個題型進行一一分析,你會發現60分很簡單。當然還是希望各位小夥伴考的越高越好。
  • C/C++中的遞歸的應用
    其實根本原因是群內有人提問關於編程的問題,小編就進行了一番思考,寫下了此文。一、遞歸的定義一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法;遞歸函數就是直接或間接調用自身的函數,也就是自身調用自己。接下來是靈魂拷問三連擊:(1)函數為什麼可以在自己的內部又調用自己?(2)既然可以自己調用自己,那麼遞歸運行過程中一定會有很多層相互嵌套,何時不再嵌套?
  • C語言編程核心要點
    原文標題C語言編程核心要點,男人看了沉默,女人看了本文轉載自【微信公眾號:碼磚雜役,ID:whatis9527want】引言筆者有十餘年的C++開發經驗,相比而言,我的C經驗只有一兩年,C比較簡單,簡單到《The C Programming Language》(C程序設計語言)只有區區的200多頁,相比上千頁的C++大部頭,不得不說真的很人性化了
  • 現代程式語言起點,C語言之環境搭建
    C 語言是一種廣泛使用的計算機語言,它與 Java 程式語言一樣普及,二者在現代軟體程式設計師之間都得到廣泛使用。C 語言被廣泛使用,比如:Linux 作業系統和 RDBMS(關係資料庫管理系統) MySQL 都是使用 C 語言編寫的。
  • python算法遞歸於尾遞歸!
    遞歸概念遞歸:程序調用自身的編程技巧稱為遞歸( recursion)。用一種通俗的話來說就是自己調用自己,它通常把一個大型複雜的問題層層轉化為一個與原問題相似的、但是規模較小的問題來求解,當問題小到一定規模的時候,需要一個遞歸出口返回。
  • 計算機編程必備技巧——遞歸使用
    1、引言 今天我們來學習遞歸,如果單說學習算法, 遞歸併不能說是算法,而是一種編程的手法,為什麼現在要學習這個呢?因為後面在學習其他算法時,要牽涉一些遞歸的調用方法,是為以後理解學習的內容做好鋪墊。
  • 計算機編程必備技巧——使用遞歸
    1、引言今天我們來學習遞歸,如果單說學習算法, 遞歸併不能說是算法,而是一種編程的手法,為什麼現在要學習這個呢?因為後面在學習其他算法時,要牽涉一些遞歸的調用方法,是為以後理解學習的內容做好鋪墊。遞歸方法作為一種優雅的解題方法,是大多數程式設計師比較喜歡的編寫方式之一。
  • 單片機C語言編程心得
    寫這個8*8按鍵程序的過程中,不管是在自己寫還是參考別人程序的過程中,發現自己對C語言有些基本知識點和編程規範有很多不懂的地方,有些是自己以前的編程習慣不好,有些就是基礎知識不紮實的表現,所以總結出來。
  • C/C++編程筆記: C語言編程面試常見問題,全是經典題!
    如果有剛剛學習編程的小夥伴也可以看一下,都是當時大學應該學懂的,但是因為我以前沒有好好聽課,有些也沒有注意到,現在也是提醒大家吧~C語言的主要特徵是什麼?C是一種過程語言。C語言的主要功能包括對內存的低級訪問,簡單的關鍵字集和簡潔的樣式。這些功能使其適用於諸如作業系統或編譯器開發之類的系統編程。 i ++和++ i有什麼區別?
  • 掌握C語言的必知要點
    溫故而知新,可以為師矣,初學一門語言的時候,我們會躍躍欲試,並沒有真正深入的理解,經過一段時間的實踐,會產生困惑,學而不思則殆,這時回過頭來看書,會有意想不到的收穫,會豁然開朗,會讓你在以後的實踐中更加運用自如