首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

利用对象作为参数,失去阶乘的值

2014-01-05 
利用对象作为参数,得到阶乘的值以下是老师给的提示,但我觉得将Fact方法的参数个数增加为两个好奇怪,一个不

利用对象作为参数,得到阶乘的值
以下是老师给的提示,但我觉得将Fact方法的参数个数增加为两个好奇怪,一个不行吗
class Fact{
    float fact (int n) //定义计算n!的方法
    {
      int i;
      float x =1;
      for(i=1;i<n;i++){
       x=x*i;}
      return x;
    }
}
public class Check1{
    public static void main (String args[ ])
    {
      Fact x =new Fact( );
      System.out.println(x.fact(10)); //计算10!
      System.out.println(x.fact(15)); //计算15!
    }
}
将上面Fact方法的参数个数增加为两个,其中一个参数的类型设为类类型;方法的返回值类型改为void。
看错了,这次我纱布了

返回void的话,需要传入一个对象,将结果保存在传入对象的成员中
[解决办法]
返回void的话,需要传入一个对象
[解决办法]


class Fact{
    void fact (int n, long[] result) //定义计算n!的方法
    {
      if (result == null)
         return;
      int i;
      long x =1;
      for(i=1;i<n;i++){
       x=x*i;}
      long[0]=x;
    }
}
public class Check1{
    public static void main (String args[ ])
    {
      Fact x =new Fact( );
      long[] r10 = {0};
      long[] r15 = {0};
      x.fact(10, r10);
      x.fact(15, r15);
      System.out.println(r10[0]); //计算10!
      System.out.println(r15[0]); //计算15!
    }
}


其实我认为直接返回更好,你老师的意思估计是弄个传出参数,不过我感觉根本是多此一举。你原来代码的最大问题是保存阶乘的结果为啥用float,用long不是更好?

热点排行