JAVA

[JAVA] 오버로딩 / 재귀호출 메서드 생성 / Math.random

sian han 2022. 2. 18. 21:35

 

※오버로딩 (Overloading) 메서드 ★★★★★

 - 같은 클래스에서 메서드명은 같은데

    매개변수의 개수자료형다른 것

void func(int a)
void func(double a)
void func(int a, int b)
void func(int a, String b)

 

 

※재귀호출 (recursive call)

 - 메서드의 내부에서 메서드 자기 자신을 다시 호출하는 것

 - 반복적인 작업을 해야 하는 메서드에 반복문 대신 재귀 호출을 이용하면, 메서드를 훨씬 간단하게 할 수 있는 경우가     있음

 

 

대표예제 1) 팩토리얼(factorial) 구하기

    팩토리얼 :한 숫자가 1이 될 때까지 1씩 감소시켜가면서 계속 해서 곱해 나가는 것

       - f(n)=n*f(n-1), 단 f(1)=1

4!=4*3*2*1
4!=4*3!
3!=3*2!
2!=2*1!
1!=1

 

 

대표예제 2) 피보나치수열 만들기

    피보나치수열 : 앞에 있는 두 개의 값을 더하는 형태

     - 첫 번째 피보나치 수열의 값은 0 이고, 두 번째와 세 번째 피보나치 수열의 값은 1 임

          else : fib(n-2) + fib(n-1) 

public static int fib(int n) {
		
		int result =0;
		
	for(int i=0;i<n;i++) {
		if(n==0) {
			result =0;
		}else if (n==1) {
			result =1;
		}else {
			result = fib(n-2) + fib(n-1);
		}
	} return result;
}
	
	public static void main(String[] args) {
		
		for(int i=0;i<10;i++) {
			int res = fib(i);
			if(i!=9) {
			System.out.print(res+", ");
			}else {
			System.out.print(res);
			}
		}
        
        == >0, 1, 1, 2, 3, 5, 8, 13, 21, 34

 

 

 

▣ Math.random

 - 0.0 <= x < 1.0 범위의 임의의 실수를 리턴하는 메서드

 

※ 사용규칙

    1) 발생시키려는 수의 개수를 각 변에 곱한다
    2) 시작값을 더한다
    3) int 로 형변환한다

 

▽1~100 사이의 임의의 정수 구하기

[1] Math.random()*100
0.0 <= x < 100.0		//0부터 99까지 (100개
			
[2] +1 => Math.random()*100+1
1.0 <= x < 101.0		//1부터 100까지 (100개
			
[3] (int) => (int)(Math.random()*100+1)
1 <= x < 101			//(int) 1부터 100까지 (100개

▽a~z 사이의 임의의 문자 구하기 (97~122)

=> (Char)(Math.random() * 26 + 'a')

 

 

'JAVA' 카테고리의 다른 글

[JAVA] 객체와 클래스  (0) 2022.02.21
[JAVA] 배열  (0) 2022.02.19
[JAVA] 메서드  (0) 2022.02.16
[JAVA] 반복문 / while / do~while문 / 무한루프 / charAt / for문 마지막 "," 제거  (0) 2022.02.15
[JAVA] for 무한루프 / scope /  (0) 2022.02.14