當前位置:編程學習大全網 - 編程軟體 - python如何求階乘?

python如何求階乘?

溶液1

陣解牛。

首先,定義壹個ns數組來存儲n!利用for循環將10000的0值加到ns上,從而直接根據索引操作數組。

然後將length定義為“數組的長度”(用實值代替自動加0),即n!結果的位數。

之後,for循環也必須用於乘法,但它不同於方案1的直接乘法,方案1中乘數(即I)乘以每壹位上的數,如果結果大於或等於10,carry >: 0表示向前壹位數值為carry,如果carry & gt0表示當前ns的“長度”中需要壹位,所以length+1表示位數+1,其中carry起到判斷是否進位的作用,length表示結果的位數。

n= int(input())

ns = [0表示範圍內的I(10000)]

n= int(input())

ns = [0表示範圍內的I(10000)]

長度= 1

ns[0] =長度= 1

如果n & gt=2:

#對於範圍內的I(2,n+1):

# #進位= 0

# #範圍內的j(長度):

###temp = ns[j] * i +進位

###carry = int(temp/10)

###ns[j] = temp % 10

# #當進位>時;0:

###ns[length] +=進位%10

# # #長度+=1

###carry = int(carry/10)

而長度& gt0:

#長度-=1

#print(ns[length],end= ' ')

將#替換為要運行的空格。

如果輸入1000,則計算1000!

解決方案2

打印()

M=int(input("計算m!,請輸入整數m:"))

導入數學

a = sum([math . log 10(I)for I in range(1,m+1)])

b=int(a)

c=a-b

打印(f“{ m }!={10**c}*10^{b}')

  • 上一篇:線切割加工沖壓模具沖0.1不銹鋼片怎麽沖頭怎麽割?間隙怎麽放
  • 下一篇:%f和%d有什麽區別
  • copyright 2024編程學習大全網