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

2020-12-11 米粒教育

阿萌又接到一個新的編程任務,要求用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編程為什麼會對學好數學有幫助呢?
    1)X(n-2)X3X2X1的運算,這裡的n是指自然數1、2、3、4、5、6、……類似上面的運算也稱為階乘運算,階乘運算是所有小於及等於該數的自然數的積。例如自然數6的階乘運算是:6 X 5 X 4 X 3 X 2 X 1 = 720當n的值超過20時,依靠人力運算已經很困難了,這時就需要藉助電腦程式來完成運算了。
  • LabVIEW編程實例:計算階乘,學習for循環+移位寄存器+遞歸調用
    階乘定義非負整數n的階乘簡記為n!,在數學上定義為所有小於等於該數的正整數的乘積,並且定義0的階乘等於1,用公式表示為:n!=1×2×3×……×(n-1)×n對於n!也可以用遞歸方式定義為如下形式:n!=(n-1)!×n,且0!=1根據這兩種定義方式,下面給出在LabVIEW中編程實現求解n!的兩種方法。
  • 雲計算開發學習實例: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值返回。
  • 如何實現一個PHP類來計算整數的階乘?(代碼詳解)
    本篇文章主要給大家介紹實現一個PHP類來計算整數的階乘。首先大家簡單了解一下什麼是階乘?一個正整數的階乘(factorial)是所有小於及等於該數的正整數的積,並且0的階乘為1。自然數n的階乘寫作n!。
  • Scratch3.0編程小課堂29(算法題:求階乘和)
    你想求什麼數的階乘和呢,告訴小企鵝吧,它會一步一步把中間數的階乘都算出來告訴你,然後說出最終的計算結果;角色:小企鵝;知識點:階乘,變量,循環,連接模塊;一、準備工作1、普及新概念:階乘階乘指從1乘以2乘以3乘以4一直乘到所要求的數。例如所要求的數是4,則階乘式是1×2×3×4,得到的積是24,24就是4的階乘。任何大於1的自然數n階乘表示方法: n!=1×2×3×……×n  或 n!=n×(n-1)!2、角色:角色庫中選擇「動物」類的小企鵝;
  • 自然數之和1+2+3+……+n等於負1/12?蘊含著什麼秘密
    而在處理黎曼猜想的過程中,出現了一個副產品,就是這個式子,1+2+3+……+n=-1/12,即全體自然數的和等於負的十二分之一。這個式子從出現到今天,一直都引起著人們廣泛的興趣和關注,因為人們都覺得這不尋常的式子後面,也許隱藏著數學裡的大秘密。
  • 用Python算一算n階乘的末尾有幾個零
    看到這一題,比較直觀的想法是計算從1到n的連乘,但這樣很容易溢出,因為乘起來的數字太大。換一個思路,我們將n階乘做質因數分解,將n階乘表示成其中a, m, n都是非負整數,且a不能被2和5整除。上面的表達式中,每一對2和5都貢獻了一個末尾的零,所以我們只要知道n的階乘中有多少個因子2,有多少個因子5,求兩者的最小值
  • 為什麼規定0的階乘為1?
    階乘(factorial)是基斯頓·卡曼(ChristianKramp,1760~1826)於1808年發明的運算符號。
  • 【學習現場】20181124的階乘末尾有多少個0?
    小史今天學習了階乘。一個正整數的階乘(factorial)是所有小於及等於該數的正整數的積,並且0的階乘為1。自然數n的階乘寫作n!。亦即n!=1×2×3×...×n。階乘亦可以遞歸方式定義:0!=1,n!=(n-1)!×n。同時,小史也碰到一個問題,要編程求出20181124的階乘末尾有多少個0。題目:如何求取20181124的階乘末尾有多少個0?
  • 用java計算一個數的階乘原來這麼簡單!
    昨天給大家分享了java中的for循環,用for循環計算一千以內所以整數的和,不知大家學得怎麼樣了?for循環是一個很強大的知識點,我們會經常使用,所以今天再講一個與for循環有關的代碼,那就是計算一個數的階乘。
  • python編程30個常用技巧
    打開APP python編程30個常用技巧 深度學習這件小事 發表於 2020-12-24 15:07:51 1、冒泡排序 2、計算x的n次方的方法
  • 有多少自然數n能滿足tan(n)>n?
    提問:是不是有無限多個自然數n滿足不等式tan(n) > n實際上,如果你經常做關於自然數和三角函數結合的問題,你會感覺到,很多時候不是再研究問題本身,而是在研究圓周率π的性質。這個問題也不會例外,對這個不等式的研究說不定能讓我們對這個神奇的無理數有更深刻的理解呢?
  • 自然數基本運算的按段操作方式的描述和實現
    第一個數除以第二個數,下面是商和餘數為了測試小賈的性能,可以讓小賈計算大數的階乘。如果說 n 是一個自然數,那麼n的階乘也是一個自然數,它是所有小於或等於n的自然數的乘積。例如1的階乘就是 1,而 6的階乘就是 1×2×3×4×5×6。通過計算我們可以求得n的階乘的具體數值。例如6的階乘為720 。但是當n變大時,階乘變大的速度非常快。
  • PowerBI DAX 計算階乘的方法
    非常碰巧,在最近幾個項目中都遇見計算階乘的情況,主要是計算排列組合數的時候會用到階乘
  • n很大時n的階乘如何計算?斯特靈公式幫你解決一切
    斯特靈公式(Stirling's formula)是一條用來取n階乘近似值的數學公式。一般來說,當n很大的時候,n階乘的計算量十分大,所以斯特靈公式十分好用;而且,即使在n很小的時候,斯特靈公式的取值已經十分準確。
  • 自然數計算器 小賈的說明文檔
    自然數基本運算的按段操作方式的描述和實現》一文。用這種操作方式,小賈可以對比較大的自然數進行四則運算和比較運算。運用這些基礎運算功能,小賈能夠進行階乘和乘方的運算,她還可以計算楊輝(賈憲)三角。小賈被包含在一個名為 xiaoJia.xlsb 的文件中。
  • python計算等差數列
    python是個高級程式語言,但是大家不要認為只有專業的編程人員才能用。事實上,他的計算功能還是蠻強大的,對於中學生,完全可以當作高級計算器來使用。P.S.:以下例子以python2.7為例。當然你會說用等差數列求和公式計算也很快。確實,以上的式子只能求簡單的等差數列和--公差為1。對於其他公差的等差數列怎麼辦呢?
  • python工廠第15層
    階乘是基斯頓·卡曼於 1808 年發明的運算符號,是數學術語,n!×n。輸入正整數n 請計算出n! 輸入格式 一個整數n(n 輸出格式 n的階乘 示例1 輸入: 5 輸出: 120
  • Python遊戲編程
    為了達到這一目的,本課程應用python語言的語法知識帶領學生從無到有的開發遊戲,通過每個遊戲項目逐步應用學到的語法知識,在實際編程中加深體會。在課程設計中儘量站在初學者的角度,降低開發遊戲的難度,從而方便學生理解及掌握遊戲編程的基本原理和實現方法,逐步提高學生對編程的興趣和能力。