반응형
사용자 정의 함수
- 최대 공약수 구하기
반환형 함수명 매개변수
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
반응형
'JAVA' 카테고리의 다른 글
[ JAVA ] - 필드와 메서드 (0) | 2022.08.19 |
---|---|
[ JAVA ] - 기본 입출력 받기 (0) | 2022.08.19 |
[ JAVA ] - 기본 개념 (0) | 2022.07.27 |
[ JAVA ] - 자바 개발환경 구축 (feat mac) - 02 (0) | 2022.07.24 |
[ JAVA ] - 자바 개발환경 구축 (feat mac) - 01 (0) | 2022.07.24 |