问题描述
输入一个正整数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.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stublong []a=new long [4000];Scanner key=new Scanner(System.in);int n=key.nextInt();for(int i=0;i<a.length;i++){a[i]=0;}a[0]=1;//把初始值由0改为1int jinWei,sum=0,flag=0;for(int i=2;i<=n;i++){jinWei=0;for(long j=0;j<a.length;j++){   //注意j的循环次数,不是n而是a.lengthsum=(int) (jinWei+a[(int) j]*i);a[(int) j]=sum%10;jinWei=sum/10;}       }
//去掉数组前边多余的0for(long i=a.length-1;i>=0;i--){if(a[(int) i]!=0){ flag=(int) i;break;}}for(long i=flag;i>=0;i--){System.out.print(a[(int) i]);}
}
}

蓝桥杯(java)阶乘计算,输入一个正整数n,输出n!的值。(高精度计算,用到数组)相关推荐

  1. 【无标题】蓝桥杯java 给定n个十六进制正整数,输出它们对应的八进制数

    做这道题时,编译器上没问题,放到蓝桥杯上就出问题了,后来网上搜了下,才知道看错题了,输入数据长度不超过100000,不是大小.然后看到一位大佬用C语言写的,三位三位的转换. C代码链接[https:/ ...

  2. 蓝桥杯 Java 阶乘计算

    由于阶乘的增长速度非常快,想用寻常的数据类型储存是不大可能的. 所以想要计算阶乘就需要用到数组来进行高精度的计算. 用数组a来表示一个整数A,a[0] 表示A的个位,a[1] 表示A的十位.(这里采用 ...

  3. 写一个判断素数的函数(isprime),在主函数输入一个正整数,输出是否是素数的信息。提示:int main(){int x=23; if (isprime(x)) print

    写一个判断素数的函数(isprime),在主函数输入一个正整数,输出是否是素数的信息. 提示: int main() {int x=23; if (isprime(x)) printf("i ...

  4. 编写一个判别素数(质数)的函数 int isPrime(int x)。在 main 函数中,输入一个正整数 n,输出 1~n 之间的所有素数以及素数的个数

    编写一个判别素数(质数)的函数 int isPrime(int x).在 main 函数中,输入一个正整数 n,输出 1-n 之间的所有素数以及素数的个数 #include<stdio.h> ...

  5. 输入一个正整数n输出n行,每行若干个星号,组成三角形。

    1370: 画图---3 时间限制: 1 Sec 内存限制: 128 MB 提交: 415 解决: 239 [提交] [状态] [讨论版] [命题人:hexl] 题目描述 小明学会画几何图形了,他能根 ...

  6. 第三十九讲项目3.1——输入一个正整数,输出它的反序数

    程序代码 #include <stdio.h> #include <stdlib.h> /* *csdn学院--2016级 *目的:让代码见证成长(作为一个初学的菜鸟,如 *大 ...

  7. 从键盘任意输入一个整型表示的月份值,用指针数组编程输出该月份的英文表示,若输入的月份值不在1~12之间,则输出“Illegal month”。

    从键盘任意输入一个整型表示的月份值,用指针数组编程输出该月份的英文表示,若输入的月份值不在1-12之间,则输出"Illegal month". **输入格式要求:"%d& ...

  8. java 从控制台输入一个正整数_编程输出该正整数各位数字之和_C语言 从键盘上输入一个正整数,计算并输出该数的各位数字之和...

    点击查看C语言 从键盘上输入一个正整数,计算并输出该数的各位数字之和具体信息 答:思路:定义变量a接受键盘输入和变量sum保存a的各位数字之和,依次对a进行除10操作,并把a除10的余数加到sum中, ...

  9. 经典Java题目:输入一个数字,输出它的大写汉字(阿拉伯数字转汉字)

    写在前面 无意间看到一个Java题目,觉得挺有意思,就拿出来和大家分享: 输入一个数字,输出它的大写汉字. 就像这样: 这算是一个有趣的题目了.但是早前我Java基础特别差就没能实现它. 当然,这次我 ...

  10. C语言:编写一个函数,输入一个正整数,输出它的各个位数的平方和。

    本来应该用循环for语句,但是不知道数字长度的情况下无法控制循环题的结束,所以采用do-while语句.因为a是整型,让a不断做除法运算最后a的值会等于0,等于0 说明已经没有数了,把所有的数找出来了 ...

最新文章

  1. mysql 判度数据库存在,问题出在什么地方啊?
  2. KD树和LSH局部敏感哈希
  3. redis有值查询返回null_Redis缓存穿透、缓存并发、热点缓存之最佳招式
  4. innodb行锁理解
  5. TurboMail邮件系统支持HTTPS双向认证
  6. 深度学习:Neural Network Layers Understanding
  7. springboot引入lib包_springboot项目打包引入lib目录下jar包
  8. 复现经典:《统计学习方法》第12章 监督学习方法总结
  9. python odoo_odoo开发学习 -- Python2 or Python3 ?
  10. ensp保存文件在哪_eNSP——配置通过FTP进行文件操作
  11. 1.4编程基础之逻辑表达式与条件分支 09 判断能否被3,5,7整除
  12. arduino neo 定位不可用_arduino霹雳七彩灯
  13. c语言字符型数据怎么输入输出,C语言基础之数据类型与输入/输出
  14. Codeforces Round #158 (Div. 2) A - Adding Digits
  15. SAP License:欧洲人的项目
  16. python中的数据成员有两类_Python类和对象
  17. js系列教程12-浏览器存储全解
  18. django python3 异步_详解配置Django的Celery异步之路踩坑
  19. librtmp源码详解
  20. 浙江大学黄杨思博计算机学院,浙江大学节能减排社会实践与科技竞赛成功-浙江大学本科生院.DOC...

热门文章

  1. php的实体字符表,php htmlspecialchars_decode() 函数把预定义的 HTML 实体转换为字符
  2. 欧姆龙变频器MX2参数_第442期丨【源程序】基于三菱西门子欧姆龙松下PLC实现喷水池控制系统;欧姆龙PLC编程软件更新步骤...
  3. 软通动力华为java机考题库_华为机考笔试刷题-java-1
  4. 《零基础》MySQL 排序(十八)
  5. 异常体系----java
  6. linux 安装 交换分区大小,给已安装的Linux新增Swap交换分区
  7. 计算机软件及其软件系统,计算机软件系统课件
  8. 接口传值后不起作用_前端工程师吐后端工程师(第八讲)——接口的开发
  9. UFLDL之Softmax回归
  10. Linux 两台服务器之间传输文件和文件夹