老师,用嵌套循环求阶乘的和。结果不对,哪里错了?谢谢!
public class FacDemo { // 方法不能嵌套定义 // 求阶乘的定义 public int fac(int n) { int s=1,sum=0; for(int j=1;j<=n;j++) { for(int i=1;i<=n;i++) { s=s*i; sum=sum+s; } } return sum; } public static void main(String[] args) { FacDemo fa = new FacDemo(); int sum = fa.fac(2); System.out.println(sum); } }
2
收起
正在回答
2回答
同学你好,如果使用嵌套循环求阶乘,建议如下修改:
// 求阶乘的定义 public int fac(int n) { int s=1,sum=0; for(int j=1;j<=n;j++) { s=1; for(int i=1;i<=n;i++) { s=s*i; } sum=sum+s; } return s; }
对应在测试方法中
public static void main(String[] args) { Test01 fa = new Test01(); //这里老师的测试类名是Test01哦! int sum = fa.fac(5); System.out.println(sum); }
注意将for循环中i的循环在一遍循环完成后,再进行加法运算!
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
好帮手慕小班
2019-06-05 15:42:08
同学你好,阶乘是所有数据依次想乘,而不是每次的值相加,并且同学使用两层循环是什么意思呐,每次的值都乘或者加两边吗?
public class Test01 { // 方法不能嵌套定义 // 求阶乘的定义 public int fac(int n) { int s=1,sum=0; for(int j=1;j<=n;j++) { /*for(int i=1;i<=n;i++) { s=s*i; sum=sum+s; }*/ s*=j; } return s; } public static void main(String[] args) { Test01 fa = new Test01(); int sum = fa.fac(5); System.out.println(sum); } }
运行效果为: (5的阶乘为120)
所以这里建议同学按照课程所示来求阶乘哦!
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星