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

一个递归问题
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;