阶乘数码(洛谷P1591题题解,Java语言描述)
生活随笔
收集整理的這篇文章主要介紹了
阶乘数码(洛谷P1591题题解,Java语言描述)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目要求
題目鏈接
分析
沒啥多說的,用BigInteger,要么就使用高精算法吧(高精是本意)。
推薦使用BigInteger數組存儲每一個階乘的值,避免重復運算,這是一種“記憶化”的思想。
AC代碼(Java語言描述)
import java.math.BigInteger; import java.util.Scanner;public class Main {public static void main(String[] args) {BigInteger[] nums = new BigInteger[1001];nums[0] = nums[1] = BigInteger.ONE;for (int i = 2; i <= 1000; i++) {nums[i] = nums[i-1].multiply(new BigInteger(Integer.toString(i)));}StringBuilder builder = new StringBuilder();Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();for (int i = 0; i < num; i++) {int n = scanner.nextInt(), a = scanner.nextInt();int counter = 0;for (char c : nums[n].toString().toCharArray()) {if (c == (char)('0'+a)) {counter++;}}builder.append(counter).append('\n');}scanner.close();System.out.print(builder);} }總結
以上是生活随笔為你收集整理的阶乘数码(洛谷P1591题题解,Java语言描述)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java】Maven工程目录下Imag
- 下一篇: 【项目管理】知识域在过程组中的体现