python 二) N的階乘對M取餘

2021-07-15 13:54:16 字數 1513 閱讀 2449

對於階乘而言, python提供了極其具有便利的range方法;

可以生成乙個按照自己意願的數字序列;

弱今天才明白它本質就是c中的for語句條件;

舉幾個例子:(舉例皆前者為c語言,後者為python3)

(1) 對於for(int i = 0 ; i < 11;i++)   就等同於  for i in range(11)

ps: 這裡的range生成是從0開始 , 需要注意

(2)對於 for(int i = 1 ; i <=11 ; i++)  就等同於 for i in range(1,12)

ps:這裡的range如果從1開始需要特殊說明,並且需要注意stop於後面下標的前一位;既這裡的12實質上迴圈只到11

(3)對於for(int i = 1; i <=11 ;i+=2)  就等同於for i in range(1,12,2)

ps::這就是range的第三個引數,自加屬性;

總結:對於range方法,代表從a為起點,b-1為終點每次自加c ;; 沒有a預設a=0 ;沒有b預設死迴圈;沒有c預設c=1 ;

所以懂了這三個屬性後, 則很容易寫出階乘題目,並且python支援取餘符號;

階乘**:

import sys

a =input()

n,m = a.split(' ')

n = int(n)

m = int(m)

summ = 1 ;

for i in range(1,n+1):

summ = summ * i

print(summ%m)

以上皆為弱自行理解,如果有語法不對的請及時告知 , orz

更新:python3有自帶的階乘函式,在import math 裡面, factorial(n)代表對n求階乘;

並且可以用map對映來接受兩個數字的值;

import math

n, m = map(int, input().split()) #這裡代表的就是讀入以空格分隔然後換為int型別

print(math.factorial(n) % m)

對負數取餘的處理

自 在vc 中計算 1 3 其結果是 1 而不是 我所要的2。在格仔座標中,如果希望超過邊界的數從另一面回到視野中,取余是非常有用的作法 原數 2 10 1 2 34 取餘120 1201 1 3 1 2即 3 2 1 而由於vc 在取整的時候,預設是將小數部分捨去,所以 1 3 0.333 0 於...

python的取餘演算法原理 python 取餘演算法

coding utf 8 created on 2012 12 28 取餘。取乙個任意小於1 美元的金額,然後計算可以換成最少多少枚硬幣。硬幣有1 美分,5 美分,10 美分,25 美分四種。1 美元等於100 美分。舉例來說,0.76 美元換算結果 應該是 3 枚25 美分,1 枚1 美分。類似7...

python的取餘演算法原理 python 取餘演算法

coding utf 8 created on 2012 12 28 取餘。取乙個任意小於1 美元的金額,然後計算可以換成最少多少枚硬幣。硬幣有1 美分,5 美分,10 美分,25 美分四種。1 美元等於100 美分。舉例來說,0.76 美元換算結果 應該是 3 枚25 美分,1 枚1 美分。類似7...