[CodeUp] C언어 기초 100제 (1031~1040) - Java

황은하·2021년 5월 3일
0

알고리즘

목록 보기
24/100
post-thumbnail

✔ 1031

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(Integer.toOctalString(n));
        
        // String octalString = Integer.toOctalString(n);
        // System.out.println(octalString);
    }
}

10진수를 8진수로 바꾸기 위해서 Integer.toOctalString(n); 를 사용했다.


✔ 1032

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(Integer.toHexString(n));
    }
}

10진수를 16진수로 바꾸기 위해서 Integer.toHexString(n) 를 사용했다.


✔ 1033

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(Integer.toHexString(n).toUpperCase());
    }
}

16진수로 바꾸고 소문자를 대문자로 바꾸고 싶어서 .toUpperCase() 를 추가했다.


✔ 1034

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        String n = sc.nextLine();
        System.out.println(Integer.parseInt(n, 8));
    }
}

8진수를 10진수로 바꾸기 위해서 8진수를 String으로 받고, Integer.parseInt(n, 8) 로 적었다. (n은 String이고 8은 몇 진수였는지 적는다.)


✔ 1035

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        String n = sc.nextLine();
        System.out.println(Integer.toOctalString(Integer.parseInt(n,16)));
    }
}

16진수를 10진수로 바꾸고, 다시 8진수로 바꾸었다.


✔ 1036

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int c = sc.next().charAt(0);
        System.out.println(c);
    }
}

Scanner로 문자를 입력받을 때에는 next()로 받고 .charAt(0) 으로 입력받은 한 문자를 char로 바꾼다. 그리고 그 문자를 int로 저장하면 아스키코드로 저장된다.


✔ 1037

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println((char)n);
    }
}

숫자를 char 로 바꾸어 출력시키면 해당 숫자가 아스키코드로 인식되어 문자로 출력된다.


✔ 1038

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] arr = sc.nextLine().split(" ");
        long num1 = Long.parseLong(arr[0]);
        long num2 = Long.parseLong(arr[1]);
        System.out.println(num1 + num2);
        
        // long num1 = Long.parseLong(sc.next());
        // long num2 = Long.parseLong(sc.next());
        // System.out.println(num1 + num2);
        // arr을 쓰지 않고 이렇게 바로 받아도 된다.
    }
}

입력되는 정수는 -1073741824 ~ 1073741824 이기 때문에 int의 범위를 초과한다. int의 범위는 -2,147,483,648 ~ 2,147,483,647 로, 1073741824 * 2 = 2148483648가 되어 int의 범위를 넘게 된다. 그래서 long으로 바꾸어 더해주었다.


✔ 1039

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        long num1 = Long.parseLong(sc.next());
        long num2 = Long.parseLong(sc.next());
        System.out.println(num1 + num2);
    }
}

배열에 넣지 않고 바로 long으로 바꿔 저장했다.


✔ 1040

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(-n);
    }
}

정수 앞에 -를 붙여서 부호를 바꿔주었다.

profile
차근차근 하나씩

0개의 댓글