程序为了实现递归调用计算50的累加,可是运行有错误,为什么?
public class L4_16
{
public static int fun(int n)
{if(n==1) return 1;
else return(n+fun(n-1));
}
public static void main(String[] args)
{
int n=50;
System.out.println(n+"!="+fun(n));
}
}

解决方案 »

  1.   

    一点问题也没有啊.
    我在eclipse和命令行模式下都行啊.
    是不是楼主的path没设置好.
      

  2.   

    Exception in thread "main" java.lang.NoClassDefFoundError: L4_16/cla
    Caused by: java.lang.ClassNotFoundException: L4_16.class
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    我是在命令行中运行的,出来上述错误。
      

  3.   

    去看看 classpath的设置吧,八成是这里错了
      

  4.   

    public class lianxi2 {
    public static double fun(int n) {
    if (n == 1)
    return n;
    else
    return n * fun(n - 1);
    } public static void main(String[] args) {
    // TODO 自动生成方法存根
    int i = 50;
    System.out.println(50 + "!=" + fun(i)); }
    }
    这个才是50!
      

  5.   

    递归在java里可以实现但凡是递归,效率都很低
      

  6.   

    晕claspath没有设置好,在开头的地方加./吧