参数传递和递归方法的练习

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);
    	}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值