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

美女的烦恼?
//要求编写任意数n从键盘输入,以递归的方式计算1+2+3+...+n   .
import   java.io.*;
public   class   digui1
{  
  public   static   void   main(String   args[])   throws   IOException
  {
    BufferedReader   buf;
    String   str;
    int   n,   m;
    buf=new   BufferedReader(new   InputStreamReader(System.in));
    System.out.println( "Input   your   number: ");
    str=buf.readLine();
    n=Integer.parseInt(str);
    m=fac(n);
    System.out.println( "1+2+3+...+n= "+m);
  }
    public   static   int   fac(int   n)
      {
          if(n==1)
          return   1;
          else
          return   (fac(n-1)+1);
      }
}

我的结果
E:\java> java   digui1
Input   your   number:
10
1+2+3+...+n=10
(怎么上一行的结果会等于10呢?)谢谢各位好心的大哥哥帮我改改!

------解决方案--------------------
public static int fac(int n)
{
if(n==1)
return 1;
else
return (fac(n-1)+1);//这一句错了, return (fac(n-1) + n)
}
}

------解决方案--------------------
...........
------解决方案--------------------
return (fac(n-1)+n);
正解
------解决方案--------------------
改成

return (fac(n-1)+n);