老师,用嵌套循环求阶乘的和。结果不对,哪里错了?谢谢!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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回答
同学你好,如果使用嵌套循环求阶乘,建议如下修改:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // 求阶乘的定义 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; } |
对应在测试方法中
1 2 3 4 5 | 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
同学你好,阶乘是所有数据依次想乘,而不是每次的值相加,并且同学使用两层循环是什么意思呐,每次的值都乘或者加两边吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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积分~
来为老师/同学的回答评分吧