Python編程案例:計算自然數n的階乘

2021-01-08 米粒教育

阿萌又接到一個新的編程任務,要求用Python編寫一個計算自然數n階乘的程序,用於學生利用計算機來計算n的階乘。

阿萌梳理了一下編程要求,他認為程序需要實現下面這些功能:

程序啟動後,程序在Shell窗口輸出提示信息「請輸入一個自然數,輸入quit可退出程序:」,學生輸入一個自然數,程序計算自然數的階乘,並將計算結果輸出到Shell窗口。程序再次輸出「請輸入一個自然數:」,等待學生的下次輸入。

程序需要判斷學生輸入的是否是自然數,如果不是自然數,再判斷是否是quit,若是quit退出程序,否則程序輸出錯誤提示「輸入錯誤,請輸入一個自然數或者輸入quit退出程序」。

阿萌找出了程序的輸入與輸出:

程序的輸入是自然數n,是整數類型,輸入的來源是學生在程序運行過程中通過程序輸入。程序獲取用戶的輸入可以使用input函數,input函數返回的是字符串,如果需要輸入整數,可以使用int函數將字符串轉換為整數。

程序的輸出是自然數n階乘的結果,在程序中通過print函數來輸出自然數n階乘的結果。

阿萌根據上面的功能描述,繪製了程序流程圖:

在流程圖中,計算自然數的階乘步驟屬於子過程,後面會給出這個子過程的流程圖。

在流程圖中,當用戶輸入quit時程序退出。在其它情況下,程序要保持運行狀態,等待用戶的輸入。前面已經學習了如何讓程序一直保持運行狀態,可以使用while循環來保持程序的運行狀態。

阿萌準備使用while循環來保持程序的運行狀態,循環條件為True,循環體為計算自然數階乘的代碼,在循環體中需要判斷學生輸入的是否是quit,如果是quit,調用break語句退出循環,程序結束。

相關焦點

  • Python編程案例:判斷自然數n是質數還是合數
    編程需求阿萌要開發一個程序,該程序可以判斷一個自然數n是質數還是合數。例如學生輸入自然數17,程序判斷17為質數,程序輸出「15:質數」。認識質數和合數要確定一個自然數是質數還是合數,需要先找出該自然數有多少個因數。因為該自然數是質數還是合數,與這個自然數有多少個因數有關。按這些數因數個數的多少,可以分為三種情況:只有1和它本身兩個因數的為質數,質數也稱為素數。
  • 學Python編程為什麼會對學好數學有幫助呢?
    現在我們做個簡單的乘法運算,我們先從2開始:先做2X1運算,運算的值是2;再做3X2X1運算,運算的值是6;繼續做4X3X2X1運算,運算的值是24;再做5X4X3X2X1運算,運算的值是120;一直到nX(n-1)X(n-2)X3X2X1的運算,這裡的n是指自然數1、2、3、4、5、6、……類似上面的運算也稱為階乘運算
  • LabVIEW編程實例:計算階乘,學習for循環+移位寄存器+遞歸調用
    階乘定義非負整數n的階乘簡記為n!,在數學上定義為所有小於等於該數的正整數的乘積,並且定義0的階乘等於1,用公式表示為:n!=1×2×3×……×(n-1)×n對於n!也可以用遞歸方式定義為如下形式:n!=(n-1)!×n,且0!
  • 雲計算開發學習實例:Python3 計算 n 個自然數的立方和
    計算公式 13 + 23 + 33 + 43 + …….+ n3實現要求:輸入 : n = 5輸出 : 225公式 : 136行為定義的python函數,實現對自然數n的立方之和。函數中使用了for循環,for i in range(1,n+1): ,此行實現的是1到n的循環,然後使用了sum+的格式,實現立方後與之前的數相加,再將結果存入sum變量中,最後將立方之和sum值返回。
  • n的階乘後面有多少個零?
    階乘是基斯頓·卡曼(Christian Kramp,1760~1826)於 1808 年發明的運算符號。
  • 自然數之和1+2+3+……+n等於負1/12?蘊含著什麼秘密
    而在處理黎曼猜想的過程中,出現了一個副產品,就是這個式子,1+2+3+……+n=-1/12,即全體自然數的和等於負的十二分之一。這個式子從出現到今天,一直都引起著人們廣泛的興趣和關注,因為人們都覺得這不尋常的式子後面,也許隱藏著數學裡的大秘密。按人們正常的邏輯,自然越往後加,越趨於無窮大,數學上確實也是這樣,無論是按數列去計算多項和還是按級數算,得到的都是一個發散的結果,無窮大。
  • python編程30個常用技巧
    打開APP python編程30個常用技巧 深度學習這件小事 發表於 2020-12-24 15:07:51 1、冒泡排序
  • 為什麼規定0的階乘為1?
    階乘(factorial)是基斯頓·卡曼(ChristianKramp,1760~1826)於1808年發明的運算符號。
  • 用java計算一個數的階乘原來這麼簡單!
    昨天給大家分享了java中的for循環,用for循環計算一千以內所以整數的和,不知大家學得怎麼樣了?for循環是一個很強大的知識點,我們會經常使用,所以今天再講一個與for循環有關的代碼,那就是計算一個數的階乘。階乘想必大家都知道,一個數的階乘就等於這個數乘所有小於它的正整數,公式也就是:n!=1x2x3x……x(n-1)xn。
  • 一行Python代碼寫階乘函數
    背景我以前用Dart寫過一行的階乘函數:fact(double n) => n < 0 ? throw ('n must be bigger than 0') : n == 0 ?1 : n * fact(n - 1);現在突(xián)發(zhe)奇(méi)想(shì),用Python寫。貌似網上還沒有這樣的例子,所以我就發出來了。要求使用一行代碼編寫函數。調用方式為fact(x),其中x為要求階乘的數。不得使用分號以變相湊成一行。
  • n很大時n的階乘如何計算?斯特靈公式幫你解決一切
    斯特靈公式(Stirling's formula)是一條用來取n階乘近似值的數學公式。一般來說,當n很大的時候,n階乘的計算量十分大,所以斯特靈公式十分好用;而且,即使在n很小的時候,斯特靈公式的取值已經十分準確。
  • 高斯求和如何用遞歸實現,Python詳解遞歸那些事,看這1篇足夠!
    【舉個例子】我們知道,國外有一個很出名的數學家高斯,在他9歲的時候,用很短的時間計算出了小學老師布置的任務,對自然數從1到100的求和。我們將求解n以內自然數之和的問題,定義一個函數fn(n),n是需要求解的最大數(此例中n為100)。那麼,解決該問題有以下2種情況:當n=1時,fn(1) = 1;當n>1時,fn(n) = fn(n-1) + n程序原始碼如圖所示
  • LabVIEW編程實例:如何求解自然常數e
    它的一個經典的數學定義公式是:使用計算機計算e的值時,可以使用下面的公式近似計算:那麼在LabVIEW中如何編程實現求解這個公式即e的值呢?編程思路從上面的近似公式可以看出,e的值與n的階乘有關,可將上式分解為兩個步驟:求解n的階乘:n!=1×2×3×......
  • 利用python計算函數與x軸之間的面積
    方案一直接上代碼:運行的結果為:分析代碼,首先我們需要引入python的標準庫math,因為後續的圓周率pi以及函數abs和sin等都需要該模塊的支持。代碼中的n表示x坐標軸被分為了多少份,可以理解為計算結果的精度,當n越大時,計算結果越大。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    高級編程(6套課程) 注:零基礎全能篇中,針對windows和liunx系統均有兩套課程可供選擇學習,單純學python,哪個系統都一樣,初學者只需選擇自己熟悉的系統學習相應課程即可。 2多任務 3web伺服器v3.1 4python高級語法v3.1 5mysql資料庫v3.1 6mini-web框架v3.1 7html和css 8首頁布局案例和移動布局 9javascrtpt 10 jquery和js庫 11 Django框架
  • Python為什麼這麼火?小孩子適合學習python編程嗎?
    Python出現的時間也就短短幾年,但就是在這短短幾年內,它打破了長久以來程式語言被三巨頭(C/JAVA/C++)統治的局面,蟬聯各大編程熱門語言排行榜榜首,成為當下最熱門的明星級程式語言之一。IEEE Spectrum 2017程式語言排行榜為何Python能迅速火起來?今天咱們就來好好聊聊最直接的幾個原因。
  • 「技術文章」《Python 資料庫 GUI CGI編程》
    2.1 Linux下安裝MySQLdb模塊 使用包安裝可以 wget http://sourceforge.net/projects/mysql-python/files/latest/download$ tar xfz MySQL-python-1.2.3.tar.gz$ cd MySQL-python-1.2.3$whereis mysql_config
  • Python中判斷數字是否為質數的實例講解
    在本篇文章裡小編給大家分享了關於python中判斷數字是否為質數的實例講解內容,有興趣的朋友們可以學習下。
  • 一起推導自然數平方、立方甚至更高次方的前n項和公式
    > 自然數平方的前n項和 那麼通項公式如下形式的自然數平方的數列,其前n項和如何求解呢? 我們將這n個等式相加,可得 那麼我們就可得到自然數平方數列的前n項和公式 我們通過一系列等式相加、錯位相消,得到自然數平方的前
  • 寫Python 代碼不可不知的函數式編程技術
    選自 Medium作者:Raivat Shah參與:魔王、Jamin本文對 Python 中的函數式編程技術進行了簡單的入門介紹。近來,越來越多人使用函數式編程(functional programming)。因此,很多傳統的命令式語言(如 Java 和 Python)開始支持函數式編程技術。