老师,用嵌套循环求阶乘的和。结果不对,哪里错了?谢谢!

老师,用嵌套循环求阶乘的和。结果不对,哪里错了?谢谢!

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回答

同学你好,如果使用嵌套循环求阶乘,建议如下修改:

// 求阶乘的定义
	    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)

http://img1.sycdn.imooc.com//climg/5cf77215000186c502890142.jpg

所以这里建议同学按照课程所示来求阶乘哦!

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕移动ttong #1
    不是,我想复习一下前面的for循环嵌套,结果没写出来。就是用嵌套循环求阶乘和。 public class FacDemo { // 方法不能嵌套定义 // 求阶乘的定义 public int fac(int n) { int s=1,sum=0; for(int j=1;j<=n;j++) { s=1; for(int i=1;i<=j;i++) { s=s*i; } sum=sum+s; } return sum; } public static void main(String[] args) { FacDemo fa = new FacDemo(); int sum = fa.fac(3); System.out.println(sum); } } 这样对吗?
    2019-06-05 15:46:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师