一个递归有关问题

一个递归问题importjava.util.ScannerpublicclassDigui{publicstaticvoidmain(Stingargs[]){intndoublev

一个递归问题
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)     有哪位大虾能帮我调出来?谢谢了。
^

[解决办法]
因为你把方法写到了类得外面!!!

好好检查一下吧,java的方法要写到类定义里面去!
[解决办法]
楼上正解。
任何函数都要封装在类里面。
[解决办法]
楼主粗心了
呵呵
[解决办法]
由于 main 方法是静态方法,要访问其他方法的话,需要把那些方法也改成静态方法,或者是实例化这个类生成一个对象来访问。

static double fn_no_recursion(int n)
static double fn_recursion(int n)
[解决办法]
程序错误太多了,建议检查完最基本语法错误再讨论,printf哪有这中参数的方法阿 。
[解决办法]
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;
}
}

[解决办法]
你使用的占位符方式一直测试不行...
还是跟楼上的一样
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;
}
}

[解决办法]
楼主写C写多了么