博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基础练习 阶乘计算
阅读量:4647 次
发布时间:2019-06-09

本文共 1181 字,大约阅读时间需要 3 分钟。

问题描述
  输入一个正整数
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
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 }

 

转载于:https://www.cnblogs.com/lolybj/p/6487211.html

你可能感兴趣的文章
数据集
查看>>
[Leetcode] unique paths ii 独特路径
查看>>
HDU 1217 Arbitrage (Floyd + SPFA判环)
查看>>
IntelliJ idea学习资源
查看>>
Django Rest Framework -解析器
查看>>
ExtJs 分组表格控件----监听
查看>>
Hibernate二级缓存配置
查看>>
LoadRunner常用术语
查看>>
关于jedis2.4以上版本的连接池配置,及工具类
查看>>
记忆讲师石伟华微信公众号2017所有文章汇总(待更新)
查看>>
mechanize (1)
查看>>
FactoryBean
查看>>
Coolite动态加载CheckboxGroup,无法在后台中获取
查看>>
如何在我们项目中利用开源的图表(js chart)
查看>>
nfs服务器工作原理
查看>>
C3P0连接池工具类使用
查看>>
SVN常用命令备注
查看>>
孩子教育
查看>>
解决Cacti监控图像断断续续问题
查看>>
结构体的传参理解成员的存储方式
查看>>