更新时间:2020-06-18 14:48:58 来源:极悦 浏览1914次
Java实现阶乘运算(递归、循环)
下面我们使用递归与循环
以及输出的截图:
/**
* 递归阶级算法,for循环
*/
public class Recursion {
public static void main(String[] args) {
System.out.println("欢迎来到树先生的世界!");
System.out.println("输入要计算的值:");
//system.in是输入
Scanner sc = new Scanner(System.in);
//读取输入的那一行的值
String inta = sc.nextLine();
//判断matches
if (!inta.matches("\\d+")) {
System.out.println("请确认您输入的是正数的数字?程序终止了");
return;
}
//将String类型转换Integer
Integer integer = new Integer(inta);
//用的类型是long类型可以计算到40的阶乘
if (integer>40) {
System.out.println("数字过大。请输入1~40之间的值");
//过大会停止程序
return;
}
//传进去的参数
System.out.println("递归的结果是:" + factorial(integer));
System.out.println("循环的结果是:" + doFactorial(integer));
}
// 递归方法
public static long factorial(int num) {
//当参数等于1时返回本身
if (num == 1) {
return 1;
}
//用long是为了计算跟多的值long的范围比较大
long digui= (long) (factorial(num - 1)*num);// 阶乘的算法factorial(num-1)*num
System.out.print("当" + num + "时 ,结果是:"+ digui);
System.out.println();
return digui;
}
//(循环方法)
//long 是返回类型
public static long doFactorial(int num) {
long result = 1;
for (int i = 0; i < num; i++) {
// result *= i;累积
result = result * (i + 1);
}
//返回值
return result;
}
}
以上就是极悦java培训机构的小编针对“编程基础,Java实现阶乘递归方法”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习