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