日期:2014-05-20  浏览次数:20662 次

基础题,关于调用方法的阶乘
public class Jiecheng2 {
  public static long fac(int n){
int sum=1;
  int count = 0;
  for(int i=1;i<=n;i++){
  sum=sum*i;
  count+=sum;
}
}
public static void main(String args[]){

long an=0;
int j=1;
int n = 10;
for(j=1;j<=n;j++){
an=an+fac(j);
System.out.println(an);
}
  }
}

eclipse一直提示红色字体那里有问题,说该方法返回的类型必须是long
我把方法里面的全部换成long都不行...请问哪里错了

/
/
/
public class Jiecheng 

 public static long fac(int n) 
 {
long res=1; 
  for(int k=2;k<=n;k++) 
  res*=k; 
  return res;
 } 
public static void main(String args[])  
{
  long sum=0;
  int i=1,n=10; 
  for(i=1;i<=n;i++) 
  sum+=fac(i); 
  System.out.println("前"+n+"项阶乘的为:"+sum);  
}  

//下面的这个方法又行了。。


------解决方案--------------------
方法最后没有return 语句。
------解决方案--------------------
你后面写的方法有return,前面的没有。
------解决方案--------------------
long fac(int n)
{
return long型数据;
}
。。。童鞋就没有发现你的函数没有返回么。。。
------解决方案--------------------
public class Jiecheng2
 { 
public static long fac(int n)
{
int sum=1;
int count = 0;
  for(int i=1;i<=n;i++)
  {
  sum=sum*i;
count+=sum;
}
return count;
}
public static void main(String args[])
{
long an=0;
int j=1;
int n = 10;
for(j=1;j<=n;j++)
{
an=an+fac(j);
System.out.println(an);
}
}
}
运行结果如下:
1
4
13
46
199
1072
6985
53218
462331
4500244
------解决方案--------------------
探讨

引用:

long fac(int n)
{
return long型数据;
}
。。。童鞋就没有发现你的函数没有返回么。。。

我在后面加了return count;
还是不行