JAVA

[ JAVA ] - 기초 예제

algml0703 2022. 8. 19. 23:00
반응형

사용자 정의 함수

- 최대 공약수 구하기

반환형 함수명 매개변수
public static int funName (int a, int b) { }
반환값이 없는 경우에는 void
public static void funName2(){ }
public class Main {
	// 반환형 함수명 매개변수
	public static int function (int a, int b, int c) {
		int min;
		if (a > b) {
			if(b> c) {
				min = c;
			}
			else {
				min = b;
			}
		}
		else {
			if (a>c) {
				min = c;
			}
			else {
				min = a;
			}
		}
		for (int i = min; i > 0 ;i--) {
			if (a % i == 0 && b % i == 0 && c % i == 0) {
				return i; 
			}
		}
		return -1;
	}
	public static void main(String[] args) {
		System.out.println("(400,300,750의 최대공약수) : " +function(400,300,750));
	}
}

- 약수 중 k번째로 작은 수 구하기

public class Main {
	public static int function (int number, int k ) {
		for ( int i = 1; i <= number; i++) {
			if (number % i == 0) {
				k--;
				if (k == 0) {
					return i;
				}
			}
		}
		return -1;
	}
	public static void main(String[] args) {
		int result = function(3050, 10);
		if (result == -1) {
			System.out.println("3050의 10번째 약수는 없습니다.");
		}else {
			System.out.println("3050의 10번째 약수는 "+result);
		}
	}

}

문자열에서 마지막 글자를 반환하기

public class Main {
	public static char function (String input) {
		return input.charAt(input.length()-1);
	}

	public static void main(String[] args) {
		System.out.println("hello world의 마지막 단어는 " + function("hello world"));

	}
}

최댓값을 구하기

public class Main {
	public static int max (int a, int b) {
		return ( a > b ) ? a : b;
	}
	public static int function(int a, int b, int c) {
		int result = max(a, b);
		result = max(result, c);
		return result;
	}

	public static void main(String[] args) {
		System.out.println("345, 567, 789 중 가장 큰 수는 " + function(345, 567, 789));

	}
}

** 팩토리얼 : ex) 5팩토리얼은 5 * 4 * 3 * 2 * 1  를 의미한다.

- 팩토리얼을 재귀함수로 구현 

** 재귀함수 : 자기 자신을 호출하는 함수

public class Main {
	public static int factorial(int number) {
		int sum = 1;
		for(int i = 2; i<= number; i++) {
			sum *= i;
		}
		return sum;
	}
	
	public static void main(String[] args) {
		System.out.println(factorial(10));
	}

}

- 피보나치 수열을 재귀함수로 구현

public class Main {
	public static int fibonacci(int number) {
		if (number == 1) {
			return 1;
			
		}
		else if(number ==2) {
			return 1;
		}
		else {
			return fibonacci(number-1) + fibonacci(number-2);
		}
	}
	public static void main(String[] args) {
			System.out.println("피보나치 수열의 10번째 원소는 : "+ fibonacci(10));
	}

}

- 피보나치 수열을 반복함수로 구현

public class Main {
	public static int fibonacci(int number) {
		int one = 1;
		int two = 1;
		int result = -1;
		if (number == 1) {
			return one;
		}
		else if (number == 2 ) {
			return two;
		}
		else {
			for (int i = 2; i< number; i++) {
				result = one + two;
				one = two;
				two = result;
			}
		}
		return result;
	}
	public static void main(String[] args) {
			System.out.println("피보나치 수열의 10번째 원소는 : "+ fibonacci(10));
	}

}

사용자로부터 배열의 크기와 배열에 들어갈 원소를 받아 가장 큰 값 구하기

import java.util.Scanner;

public class Main {
	public static int max(int a, int b) {
		return ( a > b ) ? a :  b;
	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print("생성할 배열의 크기를 입력하세요 : ");
		int number = scanner.nextInt();
		int[] array = new int[number];
		for (int i = 0; i<number;i++) {
			System.out.print("배열에 입력할 정수를 하나씩입력하세 : ");
			array[i] = scanner.nextInt();
		}
		int result = -1;
		for (int i =0; i< number ;i ++) {
			result = max(result, array[i]);
		}
		System.out.print("가장 큰 값은 : "+ result);

	}
}

다차원 배열 

배열의 원소로 배열이 들어가는 배열을 의미한다.

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int N = 50;
		int[][] array = new int[N][N];
		for(int i =0;i<N;i++) {
			for (int j = 0; j < N; j++) {
				array[i][j] = (int)(Math.random() * 10);
			}
		}
		for (int i = 0; i< N; i++) {
			for(int j = 0; j < N; j++) {
				System.out.print(array[i][j] + " ");
			}
			System.out.println();
		}
	}

}

 

 

출처

https://www.youtube.com/playlist?list=PLRx0vPvlEmdBjfCADjCc41aD4G0bmdl4R

 

반응형