老师,用嵌套循环求阶乘的和。结果不对,哪里错了?谢谢!
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 星