大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、首先在电脑打开eclipse软件,创建Scanner对象。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、成都做网站、五华网络推广、小程序设计、五华网络营销、五华企业策划、五华品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供五华建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
2、然后输出信息,请求用户输入要输入计算的阶乘数。代码:System.out.println("请输入要计算的阶乘数:");
3、然后创建num接受键盘输入的信息。再创建n,sum。
4、然后创建for语句,进行计算阶乘。
5、然后在最后,输出所算的阶乘结果。代码:System.out.println(n+"的阶乘为"+sum);
6、然后再点击程序运行按钮。在下面的窗口就可以看到运行结果。
使用BigInteger大容量运算类计算100的阶乘
一.一般算法(循环)
view plaincopy to clipboardprint?
public class Test {
public static void main(String[] args) {
int result = 1;
for (int i = 1; i = 100; i++) {
result *= i;
}
System.out.println(result);
}
}
public class Test {
public static void main(String[] args) {
int result = 1;
for (int i = 1; i = 100; i++) {
result *= i;
}
System.out.println(result);
}
}
输出结果为0,因为int无法保存下100的阶乘的结果,100的阶乘的长度至少大于50位,也要大于long,double
二.使用BigInteger大容量运算类
view plaincopy to clipboardprint?
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
BigInteger result = new BigInteger("1");//为result赋初始值,为1
for (int i = 1; i = 100; i++) {
BigInteger num = new BigInteger(String.valueOf(i));
result = result.multiply(num);//调用自乘方法
}
System.out.println(result);//输出结果
System.out.println(String.valueOf(result).length());//输出长度
}
}
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
BigInteger result = new BigInteger("1");//为result赋初始值,为1
for (int i = 1; i = 100; i++) {
BigInteger num = new BigInteger(String.valueOf(i));
result = result.multiply(num);//调用自乘方法
}
System.out.println(result);//输出结果
System.out.println(String.valueOf(result).length());//输出长度
}
}
计算结果为:93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
产度:158
//控制台数据自己获取.
int[] kim = new int[]{6,5,4,3,2,1}//这是应该从控制台获取
//递归方式获取阶乘
private int getJc(int k){
if(k=1){
return 1;
}else{
return k*getJc(k-1);
}
}
int result=0;
String buffer = "";
for(int i=0;ikim .length;i++){
if(i!=0){
buffer = buffer+" +"+kim[i]+"!";
}else{
buffer=buffer+kim[i] +"!";
}
result =result +kim[i];
}
buffer = buffer+"="+result;
System.out.println(buffer)
import java.util.*;
public class T {
public static void main(String[] args){
try{
Scanner input = new Scanner(System.in);
String num = input.nextLine();
if(!num.match("[^0]\\d+$")) {
throw new RuntimeException("输入的不是自然数");
}
if(Long.parseLong(num) 20) {
throw new RuntimeException("数字过大,无法计算");
}
long result = factorial(Long.parseLong(num));
System.out.println(result);
}catch(Exception e){
throw new RuntimeException(e);
}finally{
System.out.println("Finish computing factorial number");
}
}
/**计算阶乘**/
public static long factorial(long n) {
if(n==1) return 1 ;
return n * factorial(n-1);
}
}