본문 바로가기

JAVA

자바 기초 2 (객체지향)

1. 사용자 정의 함수

 

3개의 수 최대 공약수를 찾는 프로그램

 
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;
      }
    }
    
    // 최대공약수 : 여러개의 수 중에서 가장 큰 공통된 약수 (약수 : 그 수로 나누었을때 나머지 0)
    // i = min부터 1씩 줄여나가 a, b, c 모두 나눴을 때 0이 되는 최대공약수 i 찾아 리턴
    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--;
        // 만약 10번째 약수를 찾는다면 어떠한 약수를 찾을 때 마다 k를 1씩 빼나아가 결과적으로 10번째 약수를 찾게해줌

        if (k == 0){
          return i;
          // k번째 약수를 찾았을 떄 현재의 i가 약수이기 때문에 i를 반환
        }
      }
    }
    return -1; // 약수 못찾으면 -1 반환


  }
  public static void main(String[] args) {


    int result = function(3050, 10);
    // 3050의 10번째 약수를 result에 담겠다는 의미

    if (result == -1){
      System.out.println("3050의 10번째 약수는 없습니다.");
    }
    else {
      System.out.println("3050의 10번째 약수는" + result + "입니다.");
    }


}

 

문자열에서 마지막 단어를 반환하는 함수

import java.util.Scanner;


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"));
    }
  }

  /*
  String은 하나의 문자열을 의미하는 자료형, 내부적으로 class로 작성되어 있어서 다양한 함수를 가질수 있다.
  charAt 몇 번째 문자열을 하나 뽑아오는 함수, 특정한 단어를 0부터 출발해서 하나씩 관리할 수 있도록 해줌
  charAt은 0부터 시작해서 -1

  input이라는 입력값이 들어왔을때 input 즉 문자열의 길이에서 -1인 가장 마지막에 위치한 하나의 문자를 가지고 올 수 있다.

  input.length는 해당 문자열의 길이를 의미 1부터 시작
  charAt은 
  (input.length() - 1) : 가장 마지막에 위치하는 charAt 단어 하나 가져와서 반환
  */
  

 

max()를 이용하여 최대값을 저장하는 프로그램

import java.util.Scanner;

public class Main {

  public static int max (int a, int b){
    return (a > b) ? a : b;
  }
  // max(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));
  }
}

'JAVA' 카테고리의 다른 글

자바 기초 6 (상속)  (0) 2021.10.13
자바 기초 5 (클래스)  (0) 2021.10.13
자바 기초 4 (배열)  (0) 2021.10.13
자바 기초 3 (반복 함수와 재귀 함수)  (0) 2021.10.13
자바 기초 1  (0) 2021.10.12