程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 求1000階乘的結果末尾有多少個0

求1000階乘的結果末尾有多少個0

編輯:JAVA編程入門知識

素數是個科學計算中很重要的一個概念,素數也叫質數。素數就是最純淨的數,沒有任何其它成分的數,其它的數都可以說是由素數相乘出來的。 所以,理解好素數,對於數學和程序來說,有重要的意義。

題目是:求1000!的結果末尾有多少個0
代碼如下:

1000! = 1×2×3×4×5×...×999×1000

代碼如下:

public static void main(String[] args) {
 /*1000的階乘已經是天文數字了,所以不可能計算出來,再看有多少個0*/
 /* 解題思路:兩個素數2、5,相乘即可得到10,我們可以認為,有多少組2、5,結尾就有多少個0 */
 /* 操作方法:操作1到1000中所有的數,看每個數能被2和5整除幾次,並分別統計,假設被2整除8次,被5整除12次,那我們可以認為有8組(2,5),即8個0*/

 //被2整除的次數之和
 int count2 = 0;
 //被5整除的次數之和
 int count5 = 0;

 //遍歷所有的數
 for (int number = 1; number <= 1000; number ++) {
  int dynmicNumber = number;//該數的一個復制,用於不數的整除用
  while (dynmicNumber % 2 == 0) { //統計該數能被2整除多少次,但是並不單獨統計,而是統計到全局
   count2++;
   dynmicNumber /= 2;
  }
  while (dynmicNumber % 5 == 0) { //統計該數能被2整除多少次,但是並不單獨統計,而是統計到全局
   count5++;
   dynmicNumber /= 5;
  }
 }

 System.out.println("結尾0的個數為:" + Math.min(count2, count5));
 /* 素數是個科學計算中很重要的一個概念,素,可以理解為很單純的意思,比如:白素紙,白素貞,元素。素數也叫質數,質也可以理解為單純的意思吧,質量,物質,本質。
  * 素和質連起來就是素質,素質用來形容人的話,可以理解為:最基本的道德,最原始的人性,等等。
  * 素數就是最純淨的數,沒有任何其它成分的數,其它的數都可以說是由素數相乘出來的。
  * 所以,理解好素數,對於數學和程序來說,有重要的意義。*/
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved