0的階乘就是1,這是人為的規定。
但是這個人為規定不是隨意規定的。是根據正整數的階乘運算關係擴充套件而來的。
因為本來n(n是正整數)的階乘就是從1×2×……×n這n個數相乘。但是這個定義對0就無效了。那麼人們只能根據不同數的階乘關係來擴充套件定義。從正整數的階乘能看出來,(n+1)!÷n!=n+1,所以n!=(n+1)!÷(n+1)。那麼把這個式子擴充套件到0上,就得到0!=1!÷1=1÷1=1。就是這樣擴充套件定義的。
輸入一個正整數n,求n!(即階乘)末尾有多少個0? 比如: n = 10; n! = 3628800,所以答案為2
輸入描述:
輸入為一行,n(1 ≤ n ≤ 1000)
輸出描述:
輸出一個整數,即題目所求
要判斷末尾有幾個0就是判斷可以整除幾次10。10的因子有5和2,而在0~9之間5的倍數只有一個,2的倍數相對較多,所以本題也就轉換成了求N階乘中有幾個5的倍數。比如10的階乘,10之內有2個5的倍數,10/5=2,2之內則沒有了可以匹配的5了,所以一共2個5。
還有25階乘中貢獻了6(25/5+5/5)個5,因為有5的倍數的倍數(25=5*5,貢獻2個5),所以就有了count += n/5,在先求一批5的個數後,再求第二批5的個數。
同理 125中 5的個數等於125/5 + 25/5 +5/5=31。
0的階乘就是1,這是人為的規定。
但是這個人為規定不是隨意規定的。是根據正整數的階乘運算關係擴充套件而來的。
因為本來n(n是正整數)的階乘就是從1×2×……×n這n個數相乘。但是這個定義對0就無效了。那麼人們只能根據不同數的階乘關係來擴充套件定義。從正整數的階乘能看出來,(n+1)!÷n!=n+1,所以n!=(n+1)!÷(n+1)。那麼把這個式子擴充套件到0上,就得到0!=1!÷1=1÷1=1。就是這樣擴充套件定義的。
輸入一個正整數n,求n!(即階乘)末尾有多少個0? 比如: n = 10; n! = 3628800,所以答案為2
輸入描述:
輸入為一行,n(1 ≤ n ≤ 1000)
輸出描述:
輸出一個整數,即題目所求
要判斷末尾有幾個0就是判斷可以整除幾次10。10的因子有5和2,而在0~9之間5的倍數只有一個,2的倍數相對較多,所以本題也就轉換成了求N階乘中有幾個5的倍數。比如10的階乘,10之內有2個5的倍數,10/5=2,2之內則沒有了可以匹配的5了,所以一共2個5。
還有25階乘中貢獻了6(25/5+5/5)個5,因為有5的倍數的倍數(25=5*5,貢獻2個5),所以就有了count += n/5,在先求一批5的個數後,再求第二批5的個數。
同理 125中 5的個數等於125/5 + 25/5 +5/5=31。