python做網(wǎng)站用什么百度論壇
/ 10^9考慮前九位,% 10^9保留后9位
解題思路:
求獲取結果的后九位數(shù)字,需要對10^9取余,因為202320232023這個數(shù)字的階乘太大,必須要減少計算量,因為當一個整數(shù)乘以10^9后對其取余,那么結果都為0。
所以我們只需要找到從第幾個數(shù)的階乘開始乘以了10^9即可,所以說從100開始(實際上最少可以從40左右開始,40及其之后的數(shù)字都可以,但我們不可能一下子的精確的通過估算找到40這個數(shù),所以可以取大一些,不過是時間長了點,結果是沒問題的),后面的數(shù)的階乘就可以直接省略了。就把問題簡化為了從1的階乘加到100的階乘,取其后9位數(shù)字。
import java.util.Scanner;
// 1:無需package
// 2: 類名必須Main, 不可修改public class Main {public static void main(String[] args) {long sum = 0, num;int mod = (int) Math.pow(10, 9);for (int i = 1; i <= 100; i++) {num = 1;for (int j = 1; j <= i; j++) {num *= j;num %= mod;}sum += num;sum %= mod;}System.out.println(sum);}
}