zoukankan      html  css  js  c++  java
  • 基础练习 阶乘计算

    问题描述
      输入一个正整数n,输出n!的值。
      其中n!=1*2*3*…*n
    算法描述
      n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数aA[0]表示a的个位,A[1]表示a的十位,依次类推。
      将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。
      首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。
    输入格式
      输入包含一个正整数nn<=1000。
    输出格式
      输出n!的准确值。
    样例输入
    10
    样例输出
    3628800
     1 import java.math.BigInteger;
     2 import java.text.DecimalFormat;
     3 import java.util.Arrays;
     4 import java.util.Scanner;
     5 
     6 public class Main {
     7     public static void main(String[] args) {
     8         Scanner sc = new Scanner(System.in);
     9         int n = sc.nextInt();
    10         int[] a = new int[3000];
    11         a[0] = 1;
    12         int temp;
    13         for(int i=2;i<=n;i++){
    14             int h = 0;
    15             for(int j=0;j<3000;j++){
    16                 temp = a[j]*i+h;
    17                 a[j] = temp%10;
    18                 h = temp/10;
    19             }
    20         }
    21         int k = 0;
    22         for(int i=a.length-1;i>=0;i--){
    23             if(a[i]!=0){
    24                 System.out.print(a[i]);
    25                 k = 1;
    26             }else if(k==1){
    27                 System.out.print(a[i]);
    28             }
    29         }
    30     }
    31 
    32 }
  • 相关阅读:
    wget(转)
    852. Peak Index in a Mountain Array
    617. Merge Two Binary Trees
    814. Binary Tree Pruning
    657. Judge Route Circle
    861. Score After Flipping Matrix
    832. Flipping an Image
    461. Hamming Distance
    654. Maximum Binary Tree
    804. Unique Morse Code Words
  • 原文地址:https://www.cnblogs.com/lolybj/p/6487211.html
Copyright © 2011-2022 走看看