Skip to content

Latest commit

 

History

History
79 lines (64 loc) · 2.92 KB

180527.md

File metadata and controls

79 lines (64 loc) · 2.92 KB

수학1-1(나머지, 최대공약수, 최소공배수, GCD의 합, 진법)

관련 문제들

[issue]에 대한 정리

[#issue1] 최대공약수(GCD)를 구하는 방법 '유클리드 호제법(Euclidean altorithm)'의 개념

* r = num1을 num2로 나눈 나머지 = num1 % num2
* GCD(num1, num2) = GCD(num2, r)
* 위와 같은 과정을 r = 0이 될 때까지 반복하면 그 때의 num2가 최대공약수가 된다.
// 재귀함수를 이용한 유클리드 호제법(Euclidean altorithm)
public int gcd(int num1, int num2){
    if (num2 == 0) {
        return num1;
    } else {
        return gcd(num2, num1 % num2);
    }
}

[#issue1-1] 최대공약수를 이용하여 최소공배수(LCM)를 구하는 방법

* lcm = gcd * (num1/gcd) * (num2/gcd)
* 간단히, lcm = num1 * num2 / gcd

[#issue2] 기본적인 아스키코드

* 'null': 0
* 'space': 32
* '0': 48
* '9': 57
* 'A': 65
* 'a': 97
* 'delete': 127

[#issue3] 10진수 <-> 2진수, 8진수, 16진수 변환 시 Integer API 사용

  • 10진수 -> B진수 (Integer.toString)
Scanner scanner = new Scanner(System.in);

int num = scanner.nextInt();
int proposition = scanner.nextInt(); // 바꾸려는 진법

// [방법1] 10진수 -> B진수의 변환
String result = Integer.toString(num, proposition);
System.out.println(result.toUpperCase());

// [방법2] 2, 8, 16진수로의 변환
String res2 = Integer.toBinaryString(num);  // 10진수 -> 2진수
String res8= Integer.toOctalString(num);    // 10진수 -> 8진수
String res16 = Integer.toHexString(num);    // 10진수 -> 16진수
  • B진수 -> 10진수 (Integer.parseInt)
Scanner scanner = new Scanner(System.in);

String num = scanner.next(); 
int proposition = scanner.nextInt(); // 해당 숫자의 진수

// B진수 -> 10진수의 변환
int result = Integer.parseInt(num, proposition);   // B진수 -> 10진수
System.out.println(result)

Reference

🏠 Go Home