问题描述 给定n和len,输出n!末尾len位。 输入格式 一行两个正整数n和len。 输出格式 一行一个字符串,表示答案。长度不足用前置零补全。 样例输入 6 5 样例输出 00720 数据规模和约定 n<=30, len<=10。
这个题主要考察的大数的存储问题,普通的int和long已经存储不下了,思想是可以利用数组来存储。我只是把80分的部分做出来了。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int len=sc.nextInt(); long mul=1; for(int i=2;i<=n;i++) { mul*=i; } String str=String.valueOf(mul); StringBuilder strb=new StringBuilder(); if(len>str.length()) { for(int i=0;i<len-str.length();i++) { strb.append("0"); } strb.append(str); System.out.println(strb); }else { str=str.substring(str.length()-len, str.length()); System.out.println(str); } } }