2017년 1월 5일 목요일

[알고리즘] 순환 ( Recursion ) 예제

package com.algo.recursion;

public class MainClass {


/**
* Recursion 으로 문자열 길이 구하기
* @param String
* @return int
*/
public static int  length(String str) {
if(str.equals(""))
return 0;
else
return 1 + length(str.substring(1));

}


/**
* Recursion 으로 문자열 출력하기
* @param String
* @return void
*/
public static void printChars(String str ){

if(str.length() == 0 )
return;

else{
System.out.print(str.charAt(0));
printChars(str.substring(1));

}

}

/**
* Recursion 으로 문자열 거꾸로 출력하기
* @param String
* @return void
*/
public static void printCharsReverse(String str) {

if(str.length() == 0 )
return ;
else {
printCharsReverse(str.substring(1));
System.out.print(str.charAt(0));

}
}

/**
* Recursion 으로  입력된 정수의 이진수 출력하기
* @param int
* @return void
*/
public static void printInBinary( int n ){

if(n<2)
System.out.println(n);
else {
printInBinary(n/2);
System.out.println(n%2);

}

}

public static int sum( int n , int[] data ) {

if (n <= 0 )
return 0;
else
return sum( n-1 ,data) + data[n-1];

}



public static void main(String[] args) {
// TODO Auto-generated method stub

String testStr = "ABCDE";
String testStr1 = "E";
System.out.println( MainClass.length(testStr) );
MainClass.printChars(testStr);
System.out.println();
MainClass.printCharsReverse(testStr);

System.out.println(testStr1.substring(1));


int[] intArray = {1,2,3,4};
System.out.println( MainClass.sum( 4, intArray) );


}




}

댓글 없음:

댓글 쓰기

HOME