[BASIC-30] 阶乘计算

基础练习 阶乘计算

时间限制:1.0s   内存限制:512.0MB

问题描述

  输入一个正整数n,输出n!的值。

  其中n!=1*2*3*…*n。

算法描述

  n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。

  将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。

  首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。

输入格式

  输入包含一个正整数n,n<=1000。

输出格式

  输出n!的准确值。

样例输入

10

样例输出

3628800

import java.math.BigDecimal;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		while (scanner.hasNext()) {
			int n = scanner.nextInt();

			BigDecimal num = BigDecimal.ONE;
			for (int i = 2; i <= n; i++) {
				num = num.multiply(BigDecimal.valueOf(i));
			}
			System.out.println(num);
		}
	}
}

[BASIC-30] 阶乘计算

时间: 2024-08-30 12:42:44

[BASIC-30] 阶乘计算的相关文章

蓝桥杯 BASIC 30 阶乘计算(大数)

[思路]:大数基本都是这思路,采用数组或者字符串,每个数采用倒序的方式从头开始存储.每次进位进到下一位上. [AC代码]:两个数组来回颠倒. #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <cmath> #include <iomanip> using namespace std; #define MAX 3

阶乘计算 高精度

基础练习 阶乘计算 时间限制:1.0s   内存限制:512.0MB 问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*…*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推. 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位. 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值. 输入格式 输入包含一个正整数n,n<=100

蓝桥杯 基础练习 BASIC-30 阶乘计算

基础练习 阶乘计算 时间限制:1.0s   内存限制:512.0MB 问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推. 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位. 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值. 输入格式 输入包含一个正整数n,n<=100

6-10 阶乘计算升级版(20 分)

6-10 6-10 阶乘计算升级版(20 分) 本题要求实现一个打印非负整数阶乘的函数. 函数接口定义: void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过1000.如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印"Invalid input". 裁判测试程序样例: #include <stdio.h> void Print_Factorial ( const int N ); int main()

angular学习笔记(五)-阶乘计算实例(1)

<!DOCTYPE html> <html ng-app> <head> <title>2.3.2计算阶乘实例1</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="script.js"></script> </

angular学习笔记(五)-阶乘计算实例(2)

<!DOCTYPE html> <html ng-app> <head> <title>2.3.3计算阶乘实例2</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="script.js"></script> </

十五:阶乘计算

题目:阶乘计算 输入一个正整数n,输出n!的值. 其中n!=1*2*3*-*n.算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推. 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位. 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值.输入格式 输入包含一个正整数n,n<=1000.输出格式 输出n!的准确值.样例输入10样例输出3628800

基础训练 阶乘计算

阶乘计算 自己写的超时了,这里直接贴出别人的代码了 #include<iostream> #include<string.h> using namespace std; int main(){ int n,s,r=0,a[10005]; cin>>n; memset(a,0,sizeof(a)); a[0]=1; for(int i=1;i<=n;i++){ for(int j=0;j<10001;j++){ s=a[j]*i+r; a[j]=s%10; r

PTA——6-10 阶乘计算升级版

要求: 实现一个打印非负整数阶乘的函数 N是用户传入的参数,其值不超过1000.如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input” 1 #include <stdio.h> 2 3 void Print_Factorial( const int N); 4 int main(){ 5 int N; 6 scanf("%d",&N); 7 Print_Factorial(N); 8 return 0; 9 } 10 void