1.参数传递
public class Test1 {
public static void main(String[] args){
Circle c=new Circle();
PassObject p=new PassObject();
p.printAreas(c,5);
}
}
class Circle{
double radius;
public double findArea(){
double area=Math.PI*radius*radius;
return area;
}
}
class PassObject{
public void printAreas(Circle c, int time){
System.out.println("Radius\t\tArea");
for(int i=1;i<=time;i++){
//设置圆的半径
c.radius=i;
System.out.println(c.radius+"\t\t"+c.findArea());
}
c.radius++;
System.out.println("now radius is:"+c.radius);
}
}
2.递归方法的使用
(1)已知有一个数列: f(0) = 1,f(1) = 4,f(n+2)=2*f(n+1) + f(n), 其中 n 是大于 0的整数,求 f(10) 的值。
public class RecursionTest {
public static void main(String[] args){
RecursionTest t1=new RecursionTest();
System.out.println(t1.getResult(3));
}
public int getResult(int n){
if(n==0){
return 1;
}else if(n==1){
return 4;
}else{
return 2*getResult(n-1)+getResult(n-2);
}
}
}
(2)输入一个数据n,计算斐波那契数列的第n个值1 1 2 3 5 8 13 21 34 55
规律:一个数等于前两个数之和
要求:计算斐波那契数列的第 n 个值,并将整个数列打印出来
public class RecursionTest {
public static void main(String[] args){
RecursionTest t1=new RecursionTest();
int n=10;
System.out.println(t1.getResult(n));
for(int i=1;i<=n;i++){
System.out.print(t1.getResult(i)+" ");
}
}
public int getResult(int n){
if(n==1){
return 1;
}else if(n==2){
return 1;
}else{
return getResult(n-1)+getResult(n-2);
}
}
}