import java.util.Scanner;
public class Digui
{ public static void main(Sting args[])
   { int n;
     double value;
     Scanner input=new Scanner(System.in);
     System.out.print("本程序实现计算从1到n平方和!");
     n=input.nextInt();
     value=fn_no_recursion(n);
     System.out.printf("the result of fn_no_recursion:%ld\n",value);
     value=fn_recursion(n);
     System.out.printf("the result of fn_recursion :%ld\n",value);
     }
}
double fn_no_recursion(int n) //非递归方式
 {long value=0;
  for(int i=1;i<=n;i++)
        value+=i*i;
     return value;
 }
double fn_recursion(int n)  //递归方式
 { if(n==1)
     return 1;
    return fn_recursion(n-1)+n*n;
}
     编译出现如下错误:C:\>javac Digui.java
Digui.java:15: 需要为 class、interface 或 enum
double fn_no_recursion(int n)  有哪位大虾能帮我调出来?谢谢了。
^

解决方案 »

  1.   

    因为你把方法写到了类得外面!!!好好检查一下吧,java的方法要写到类定义里面去!
      

  2.   

    由于 main 方法是静态方法,要访问其他方法的话,需要把那些方法也改成静态方法,或者是实例化这个类生成一个对象来访问。static double fn_no_recursion(int n)
    static double fn_recursion(int n)
      

  3.   

    不行啊  C:\>javac Digui.java
    Digui.java:7: 非法的表达式开始
       static double fn_no_recursion(int m)
       ^
      

  4.   

    程序错误太多了,建议检查完最基本语法错误再讨论,printf哪有这中参数的方法阿 。
      

  5.   

    import java.util.Scanner;
    public class Digui
    { public static void main(String args[])
       { int n;
         double value;
         Digui test = new Digui();
         Scanner input=new Scanner(System.in);
         System.out.print("本程序实现计算从1到n平方和!");
         n=input.nextInt();
         value=test.fn_no_recursion(n);
         System.out.println("the result of fn_no_recursion:"+value);
         value=test.fn_recursion(n);
         System.out.println("the result of fn_recursion :"+value);
         }
    double fn_no_recursion(int n) //非递归方式
     {long value=0;
      for(int i=1;i<=n;i++)
            value+=i*i;
         return value;
     }
    double fn_recursion(int n)  //递归方式
     { if(n==1)
         return 1;
        return fn_recursion(n-1)+n*n;
    }
    }
      

  6.   

    你使用的占位符方式一直测试不行...
    还是跟楼上的一样
    package com.hong.demo;import java.util.Scanner;
    public class Digui

    public static void main(String[] args)
       { int n;
         double value;
         Digui dg = new Digui();     
              
         System.out.print("本程序实现计算从到n平方和!");
         Scanner input=new Scanner(System.in);
         n=input.nextInt();
         value=dg.fn_no_recursion(n);
         System.out.printf("the result of fn_no_recursion:"+value);
         value=dg.fn_recursion(n);
         System.out.printf("the result of fn_recursion:"+value);    
         
         }
    double fn_no_recursion(int n) //非递归方式
     {long value=0;
      for(int i=1;i<=n;i++)
            value+=(long)(i*i);
         return value;
     }
    double fn_recursion(int n)  //递归方式
     { if(n==1)
         return 1;
        return fn_recursion(n-1)+n*n;
    }
    }