2011年2月28日

遞迴練習 三角形

public class tri {
	/*
	Enter n = 5
	tri1
	*
	**
	***
	****
	*****
	tri2
	*****
	****
	***
	**
	*
	tri3
	    *
	   **
	  ***
	 ****
	*****
	tri4
	*****
	 ****
	  ***
	   **
	    * 
	*/
	public void prchar(String c , int n){
		for(int i = 0 ; i < n ; i++)
			System.out.print(c);
	}
	
	public void tri1(int n){
		if(n == 1){
			prchar("*",1);
			System.out.println();
		}else{
			tri1(n-1);
			prchar("*",n);
			System.out.println();
		}
	}
	
	public void tri2(int n){
		if(n == 1){
			prchar("*",1);
			System.out.println();
		}else{
			prchar("*",n);
			System.out.println();
			tri2(n-1);
		}
	}
	
	public void tri3(int n , int m){
		if(n == 1){
			prchar(" ",m-1);
			prchar("*",1);
			System.out.println();
		}else{
			tri3(n-1 , m);
			prchar(" ",m-n);
			prchar("*",n);
			System.out.println();
		}
	}
	
	public void tri4(int n , int m){
		if(n == 1){
			prchar(" ",m-1);
			prchar("*",1);
			System.out.println();
		}else{
			prchar(" ",m-n);
			prchar("*",n);
			System.out.println();
			tri4(n-1 , m);
		}
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		java.util.Scanner sc = new java.util.Scanner(System.in);
		int n;
		System.out.print("Enter n = ");
		n = sc.nextInt();
		
		tri t = new tri();

		System.out.println("tri1");
		t.tri1(n);
		System.out.println("tri2");
		t.tri2(n);
		System.out.println("tri3");
		t.tri3(n, n);
		System.out.println("tri4");
		t.tri4(n, n);
		
	}
}

沒有留言: