[Java] 41. 메서드 실습(3)

@_@·2021년 6월 13일

Java 1부

목록 보기
40/41
post-thumbnail

ㅇ이제 메소드를 다양한 형태로 쓰는 것 알려드릴 거야

중복되는 코드를 최소화 시키려는 거니까

지금까지 연습한 거는 메소드 어떻게 정의하느냐 했었어
1개 만들어서 메인에 1개 넣는 식으로

이제는 구조적으로 메소드를 여러 개 호출하는 것을 연습해 볼 거야




ㅇ isDivisor()


// 1. 정수형 숫자 2개를 입력받아 약수인지 아닌지 알려주는 메소드

뒤에 들어오는 숫자가 앞에 들어오는 숫자의 약수인지 아닌지. 참 거짓으로 반환
입력도 존재. 출력도 존재
입력은 정수형 숫자 2개. 반환으로는 불리언 타입 1개 반환

(내풀이)

(자동완성으로 만들면 이게 기본값)

(쌤풀이)

앞에서 입력을 배열로 했던 이유는 몇 개가 들어갈 지 모르니까!
3개가 들어갈지, 10개가 들어갈지, 100개가 들어갈지 몰라서
배열로 사용했던거야
근데 이번 문제는 딱 2개가 들어온다고 정해져 있으니까
굳이 배열로 묶어서 넣을 필요는 없고, 그냥 정수 2개 사용하면 돼

불리언은 초기값?을 false를 넣나봐
sum에 0 넣어놓고 시작하듯

삼항연산자 중간변수 없이 한방에 가능!!!
바로 리턴에 넣어줘도 돼~~




ㅇ getDivisorsSum

약수 총합 알려주는 메소드

(내풀이)

(쌤풀이)

ㅇ 같이 만든 이유
메소드끼리 서로를 호출할 수 있어

num1 % i == 0 는 약수인지 아닌지를 참 또는 거짓인지 계산하는 부분이었어.
근데 이 계산은 첫번째 메소드 이용해서 할 수 있었어
2개 숫자 들어오면 약수인지 아닌지를 참 또는 거짓임을 알려주는 메소드였으니까

그래서 이 조건식 대신에 메소드를 쓸 수 있어


겟디바이저썸이 이스디바이저를 사용하는

코드 양이 얼마 안 돼서 줄어드는 게 눈에 안 띄는데
다른 복잡한 곳에서는 코드가 엄청 간결해지는 걸 볼 수 있어


완전수


완전수면  트루, 완전수가 아니면 폴스

완전수는 나머지 약수의 합이 자기 자신과 같을 때

완전수가 몇 개 없어
6, 28, 496, 8128 이 뒤는 너무 커져

우선 생각해 볼 건 1약수구하기 2약수들의 합 구하기
그냥 작성한다면
들어오는 숫자에 대해 약수들의 합을 구하는 코드 필요

전체 파일 입장에서는 유사한 코드가 2번이나 작성되어 있어
그러면 이걸 호출해서 사용하면 돼

(내풀이)

최종결과까지

쌤 풀이

약수들의 총합을 구한 값이 자기자신의 2배가 된다. - 식을 이용해도 돼
정수론 찾아보니 이게 정의였어;; ㅋㅋㅋ




ㅇ  마지막 실습  :  소수 알려주는 것


이 때 지금까지 사용했던 메소드 이용

(내풀이)

쌤 풀이
1이 들어가면 안되니까
조금 더 정확하게 하고 싶다면 앤드연산 이용해서 조건 달아주면 돼

profile
STEP BY STEP

0개의 댓글