重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
答: 在這里我的思路是利用Python函數同時接受多個參數,然后在函數的內部,它的功能是返回各輸入參數對應的乘積。如下所示,可以使用*nums作為輸入參數以同時接受多個參數。對應代碼如下所示:
郊區網站制作公司哪家好,找創新互聯!從網頁設計、網站建設、微信開發、APP開發、響應式網站建設等網站項目制作,到程序開發,運營維護。創新互聯公司2013年成立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯。
本次例子是對1,3,5,7和9進行累乘,本次的結果為945,如下所示,計算正確。
同樣地,我們也可以使用其他例子進行測試,也可以得到正確的結果。
按照題目要求編寫的Python階乘程序如下
def factorial(n): #定義階乘函數
f=1 #累乘器賦初值1
for i in range(1,n+1): #for_i循環變量i從1到n變化
f=f*i #f累乘i
return f #返回n的階乘結果f
n=int(input("請輸入n:")) #輸入n的值
print(factorial(n)) #打印n!結果
源代碼(注意源代碼的縮進)
代碼如下:
#coding=utf-8
n?=?int(input('請輸入一個正整數:'))
num?=?1
for?i?in?range(1,?n?+?1):
num?=?num?*?i
print('結果:',?num)
運行結果:
import math
n = int(input("請輸入一個正整數:"))
# 計算階層
result = math.factorial(n)
# 輸出結果
print("{}! = {}".format(n, result))
解法1
數組解法牛。
首先定義一個ns數組用來存儲n!的各個位數上的數值,利用for循環給ns加入10000個0值,以方便后面直接根據index對數組進行操作。
然后定義length作為 “數組的長度”(有真實數值的而非自動添加的0) 也即n!的結果的位數。
之后也必須用到for循環進行累乘,但跟解法一的直接累乘不同,這里是乘數(即i)跟各個位上的數分別相乘,若結果大于等于10則carry0即向前進一位數值為carry,若j循環結束后carry0則說明需要在當前ns的“長度”上進一位,所以length+1即位數+1,這里carry起的就是判斷是否進位的作用,而length則代表著結果的位數。
n= int(input())
ns = [0 for i in range(10000) ]
n= int(input())
ns = [0 for i in range(10000) ]
length = 1
ns[0] = length = 1
if n=2:
#for i in range(2,n+1):
##carry = 0
##for j in range(length):
###temp = ns[j] * i + carry
###carry = int(temp/10)
###ns[j] = temp % 10
##while carry0:
###ns[length] += carry%10
###length+=1
###carry = int(carry/10)
while length0:
#length -=1
#print(ns[length],end='')
把# 替換為空格就可以運行。
如輸入1000,計算1000!
解法2
print()
m=int(input("計算m!,請輸入整數m:"))
import math
a=sum([math.log10(i) for i in range(1,m+1)])
b=int(a)
c=a-b
print(f'{m}!={10**c}*10^{b}')