为了账号安全,请及时绑定邮箱和手机立即绑定

小白阶乘调用方法哪里不对,出不了结果?(在职业路径提问等了2天没助教回答,只能放这里求大神)

小白阶乘调用方法哪里不对,出不了结果?(在职业路径提问等了2天没助教回答,只能放这里求大神)

Ghostless 2017-07-24 16:58:01
//阶乘用方法调用public class FacDemo {//带参有返回值 public static void main(String[] args) {  //创建对象  FacDemo f=new FacDemo();  System.out.println("你输入一个数:");  Scanner a=new Scanner(System.in);  int sum=0;  for(int i=1;i<=a.nextInt();i++){   sum=sum+f.fac(i);  }  System.out.println(a.nextInt()+"的阶乘和为:"+sum); }  //创建一个方法 public int fac(int n){  int s=1;  for(int i=1;i<=n;i++){   s=s*i;  }  return s; }
查看完整描述

3 回答

已采纳
?
Camel97

TA贡献49条经验 获得超38个赞

把你主函数的for循环删除。改成
sum=f.fact(a.nextInt());
你的fact函数算的就是阶乘。你主函数加个for循环你想想你算的究竟是什么。

查看完整回答
1 反对 回复 2017-07-24
  • Ghostless
    Ghostless
    for循环是1~a.nextInt()的阶乘和啊
  • Camel97
    Camel97
    另外这样改的话因为调用了两次a.nextInt() 所以结果好像出不来。建议你用int b = a.nextInt();然后用b来替换后面的a.nextInt()
  • Ghostless
    Ghostless
    这个我试过了,一样没结果
点击展开后面2
?
Jason333

TA贡献31条经验 获得超0个赞

 for(int i=1;i<=a.nextInt();i++){
   sum=sum+f.fac(i);
  }

System.out.println(a.nextInt()+"的阶乘和为:"+sum);

这里有问题,a.nextInt()每次都会等待你输入,下面同理


查看完整回答
反对 回复 2017-07-24
?
Camel97

TA贡献49条经验 获得超38个赞


//img1.sycdn.imooc.com//5975c05600011e7c05330686.jpg是要这样吗。

查看完整回答
反对 回复 2017-07-24
  • 3 回答
  • 0 关注
  • 1881 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信