程式設計之美 階乘

2022-07-31 05:42:09 字數 557 閱讀 5106

view code

1

//n!進行質因數分解,n!=2^x+3^y+5^z...所以末尾0的個數為min(x,z),又因為x>z,所以只要求出z的值即可

2int solution(int n)

3 13

return count;

14 }

15 }

1617

//公式:z=[n/5]+[n/5^2]+[n/5^3]+...其中[n/k]表示1,2,3,...,n中能被k整除的數的個數

18int solution(int n)

19 26

return count;

27 }

2829

//第二個問題等同於求n!中含質因數2的個數,等於[n/2]+[n/4]+[n/8]+...

30int solution(int n)

31 38

return count;

39 }

4041

//n!含有質因數2的個數還等於n減去n的二進位制表示中1的數目

程式設計之美 2 2 階乘

題目1 找出n 中末尾0的個數。include 輸入n 輸出n 中末尾0的個數 分析 只需要知道n 中質因子5出現了多少次 因為2 5 10 因子2比5多 只需要關注5 方法1 對1.n的每個數字 迴圈除以5 相加得到總共因子5的個數 注意 像25這樣的數字提供了2個5 int numofzero1...

程式設計之美 不要被階乘嚇倒

問題1描述 給定整數n,n求n!末尾有幾個0。例如n 10,n!3628800,n!末尾有兩個0 分析 一 將n!分解質因數,n!2 x 3 y 5 z 由於10 2 5,所以問題也就是求m min x,z 容易看出x大於等於z,所以也就是求z include int main printf d n...

程式設計之美 不要被階乘嚇到

題目 1 給定乙個整數n,那麼階乘n 末尾有多少個0呢?2 求n 的二進位制表示中最低位1的位置?先來看怎麼計算階乘,當然可以是迴圈,也可以是遞迴,上 public long factorial1 int n return sum public long factorial2 int n retur...