博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多种方式求阶乘
阅读量:7068 次
发布时间:2019-06-28

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

package testBlog;import java.util.Scanner;//用非递归的方式求阶乘public class Test {    public long getSolution(int n) {
// 计算阶乘的方法 if (n == 0) {
// 如果输入的数字是0,则阶乘结果就是1 return 1; } long sum = 1; for (int i = 1; i <= n; i++) { sum = sum * i; } return sum; } public static void main(String[] args) { System.out.println("请输入要求阶乘的数字:"); Scanner sc = new Scanner(System.in); int a = sc.nextInt(); Test ex = new Test(); System.out.println(ex.getSolution(a)); }}

这是用非递归的方式求阶乘.难点在于sum = sum*i此处.输出时不要忘记用syso,因为默认的返回值不代表会输出.

 

 

 

 

1 package testBlog; 2  3 import java.util.Scanner; 4  5 //用递归的方式求阶乘 6 public class Test { 7     public static long getSolution(int n) { 8         if (n == 0) { 9             return 1;10         }11         return n * getSolution(n - 1);// 此处发生递归12 13     }14 15     public static void main(String[] args) {16         System.out.println("输入要求阶乘的数字:");17         Scanner sc = new Scanner(System.in);18         int a = sc.nextInt();19         System.out.println(getSolution(a));// 静态方法直接调用20     }21 }

强烈注意:使用递归时一定要写上递归的边界,不然会出现StackOverflowError错误.这段代码中,递归的边界就在于if(n==0)处,少了这段代码程序就会报错.

转载于:https://www.cnblogs.com/ssC2H4/p/8125643.html

你可能感兴趣的文章
Auto Layout 使用心得(五)—— 根据文字、图片自动计算 UITableViewCell 高度
查看>>
Linux命令参数详细解析-cp
查看>>
python爬取糗事百科
查看>>
Java 创建文件
查看>>
dubbo之基础应用
查看>>
javax.persistence.RollbackException: Transaction marked as rollbackOnly Ask
查看>>
基于友盟的第三方登录
查看>>
工程师男友如何反窃听?趣聊密码学入门科普
查看>>
Memcached服务级调优
查看>>
TensorFlow中那些鲜为人知却又极其实用的知识
查看>>
12306 售票网站新版验证码识别对抗
查看>>
Maven三种仓库详解
查看>>
使用 json-server 简单完成CRUD模拟后台数据
查看>>
在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务
查看>>
Gartner:2016年第四季度全球服务器收入下滑1.9%
查看>>
如何使用jMeter发送两个逻辑上相关的HTTP请求
查看>>
“新技术·新工业·新商业”第二届中国制造千人会即将起航
查看>>
windbg调试堆破坏
查看>>
socket异步编程--libevent的使用
查看>>
VR游戏《Space fist》更新了!增强“打击感”玩起来更带劲
查看>>