본문 바로가기

Language/Java 기본

메서드 2

public class ex011_약수확인 {
public static void main(String[] args) {
	int num1 = 10;
	int num2 = 2;
	boolean divisor = isDivisor(num1, num2);
	System.out.println(divisor);
	
	
}

public static boolean isDivisor(int num1, int num2)
{
	
	//return num1%num2 == 0 ? true : false;
	return num1%num2 == 0;
}

}

 

다음과 같이 returun 뒤에 이항 연산으로 인한 비교문장, 혹은 삼항연산자를 사용할 수도 있다.

 

 

package Yak;

public class ex01 {
int c = 0;
	
	public static boolean isDivisor(int num1, int num2)
	{
		
		//return num1%num2 == 0 ? true : false;
		
		return num1%num2 == 0;
	}

	public static int getSum(int c) {
		
		int sum = 0;
		
		for (int j = 1; j <= c; j++) {
			
			if(isDivisor(c, j)) {
				sum += j;
			}

		}		
		return sum;
	}
	
}

 

약수 처리를 하는 메서드이다 ,Dibisor는 약수를 구분하게되고

getSum 은 구분한 약수의 여부를 isDivisor로부터 결과를 반환받아

판단하게 된다. 

 

 

 

 

package Yak;

public class ex01 {
	int c = 0;

	public static boolean isDivisor(int num1, int num2) {

		// return num1%num2 == 0 ? true : false;

		return num1 % num2 == 0;
	}

	public static int getSum(int c) {

		int sum = 0;

		for (int j = 1; j <= c / 2; j++) {

			if (isDivisor(c, j)) {
				sum += j;
			}

		}
		return sum;
	}

	public static boolean isPerfect(int c) {
		return getSum(c) == c;

	}

}
package Yak;

public class ex02 {

	public static void main(String[] args) {
		
		int num1 = 7;
		int num2 = 56;
		ex01 ov = new ex01();
		
		System.out.println(ov.isPerfect(num1));
	}
	
}

 

완전수를 판별하는 메서드이며, 

getSum 은 하나의 값을 (int c로 취급하여 ) 입력받아. return 으로 sum변수를 내보낸다.

그리고 다른 메서드에서 getsum을 통해 들어간(c) 의 약수의 합이 메인함수에서 받아온 int c와 동일한지 

즉, 완전수인지 판별하는 메서드이다.

 

 

 

 

package Yak;

public class ex01 {
	int c = 0;

	public static boolean isDivisor(int num1, int num2) {

		// return num1%num2 == 0 ? true : false;

		return num1 % num2 == 0;
	}

	public static int getSum(int c) {

		int sum = 0;

		for (int j = 1; j <= c / 2; j++) {

			if (isDivisor(c, j)) {
				sum += j;
			}

		}
		return sum;
	}

	
	
	public static void get_divisiors(int a, int b) {


		for (int j = a; j <= b; j++) {
			
			if (getSum(j) == j) {
			System.out.printf("%d ", getSum(j));
			}
				
			}
			
		}

 

이것은 a,b 범위내의 완전수를 판별한다.

작동순서는 get_divisiors가 두개의 입력값을 받으면, 해당 수의 범위 만큼

getsum 메서드를 불러와 isdivisor 메서드를 통해 약수임을 판별하고 sum에 값을 더한다.

그리고 다시 get_divisiors에서 getsum 메서드를 통해 얻어낸 합계가 자기 자신과 같냐를 판별하여

결과를 출력한다.

 

 

	public static void get_divisiors2(int a, int b) {


		for (int j = a; j <= b; j++) {
			
			if (isPerfect(j)) {
			System.out.printf("%d ", getSum(j));
			}
				
			}
			
		}
	
	
	public static boolean isPerfect(int c) {
		return getSum(c) == c;

	}


}

혹은 완전수를 판별하는 메서드를 따로 만들어

getSum(c) 에 대해 완전수를 판별하는 조건식으로 만들고,

True 여부에 따라서 해당 번째 (j) 까지의 약수의 합 (getSum 메서드) 를 구하는 방법으로도 쓸 수 있다.

 

 

 

'Language > Java 기본' 카테고리의 다른 글

ArrayList  (0) 2021.01.08
메서드 오버로딩(Overloading)  (0) 2021.01.08
클래스와 객체  (0) 2021.01.07
객체 지향프로그래밍 (Object Oriented Programming)  (0) 2021.01.07
메서드  (0) 2021.01.07