//要求编写任意数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呢?)谢谢各位好心的大哥哥帮我改改!

解决方案 »

  1.   

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

  2.   

    改成这样试一下,我没环境,只能这样猜else
         return (fac(n-1)+n);
      

  3.   

    谢谢各位啊,看来这里都是卧虎藏龙啊,小女子刚学JAVA,见笑了啊,照片等我改天传到BLOG上吧!
      

  4.   

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

  5.   

    shuai45(付出总有回报,要做就做最好.) ( ) 信誉:100    Blog   加为好友  2007-05-15 14:20:27  得分: 0  
     
     
       我想要美女的相片 不想要分~
      
     
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    同感
      

  6.   


    import javax.swing.JOptionPane;int n;
    String str=JOptionPane.showInputDialog("Pls enter your number:");
    n=Integer.parseInt(str);就OK了!