试题 算法训练 阶乘末尾(java)

试题 算法训练 阶乘末尾

问题描述

给定n和len,输出n!末尾len位。

输入格式

一行两个正整数n和len。

输出格式

一行一个字符串,表示答案。长度不足用前置零补全。

样例输入

6 5

样例输出

00720

数据规模和约定

n<=30, len<=10。

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();
		sc.close();
		
		String str = "1";
		for (int i = 0; i < len; ++i) {
			str = str + "0";
		}
		
		long a = Long.parseLong(str);

		long res = 1;
		for (int i = 1; i <= n; ++i) {
			res = res * i % a;
		}
		
		String r = res + "";
		int length = len - r.length();
		if (r.length() - len < 0) {
			for (int i = 0; i < length; ++i) {
				r = "0" + r;
			}
		}
		System.out.println(r);
	}

}
发布了6 篇原创文章 · 获赞 0 · 访问量 47

猜你喜欢

转载自blog.csdn.net/qq_40930715/article/details/105559646
今日推荐