728x90

scpc 1차예선 d-14

 

1040 .

입력된 정수의 부호를 바꿔 출력해보자.
단, -2147483647 ~ +2147483647 범위의 정수가 입력된다.

참고
단항 연산자인 -(negative)를 변수 앞에 붙이면 부호가 반대로 바뀌어 계산된다.

예시
int a;
scanf("%d", &a);
printf("%d", -a);

 

import java.util.Scanner;

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

 

1041.

영문자 1개를 입력받아 그 다음 문자를 출력해보자.

영문자 'A'의 다음 문자는 'B'이고, 영문자 '0'의 다음 문자는 '1'이다.

참고
숫자는 수를 표현하는 문자로서 '0' 은 문자 그 자체를 의미하고, 0은 값을 의미한다.

힌트
아스키문자표에서 'A'는 10진수 65로 저장되고 'B'는 10진수 66으로 저장된다.
따라서 문자도 값으로 덧셈을 할 수 있다.

//String 를 char로 변환x

//String으로 1줄을 입력받으면서 charAt를 통해 char 문자 한개만 저장후 int를 통해 아스키코드 연산

 

import java.io.IOException;
import java.util.Scanner;

public class Main{
    
    public static void main(String [] args) throws IOException{
        
        Scanner sc = new Scanner(System.in);
        
        char s = sc.nextLine().charAt(0);
        int sp = (int)s +1;
        
        System.out.println((char)sp);
        
        
        
    }
    
}

 

 

1042

 

정수 2개(a, b) 를 입력받아 a를 b로 나눈 몫을 출력해보자.
단, -2147483648 <= a <= b <= +2147483647, b는 0이 아니다.

참고
C언어에서 정수/정수 연산의 결과는 정수(몫)로 계산된다.
실수/정수, 정수/실수, (float)정수/정수, 정수/(float)정수 등의 연산 결과는 실수 값으로 계산된다.

(float)(정수/정수)는 정수/정수의 결과인 정수 값을 실수형(float)로 바꾸는 것으로,
계산 결과인 정수 값이 실수 형태로 변환되는 것이니 주의해야 한다.

정수/실수 계산결과가 자동으로 실수형으로 바뀌는 것을 묵시적 (데이터)형변환이라고 하고,
어떤 값이나 결과의 데이터형을 강제로 바꾸는 것을 명시적 (데이터)형변환이라고 한다.

int a;
scanf("%d", &a);
printf("%f", (float)a);

와 같이 실행하면, 정수로 저장되어 있는 값을 실수형(float)으로 명시적으로 변환하여 출력한다.

import java.io.IOException;
import java.util.Scanner;

public class Main{
    
    public static void main(String [] args) throws IOException{
        
        Scanner sc = new Scanner(System.in);
        
        int a = sc.nextInt();
        int b = sc.nextInt();
        
        System.out.println(a/b);
        
        
        
        
    }
    
}

 

1043.

정수 2개(a, b) 를 입력받아 a를 b로 나눈 나머지를 출력해보자.
단, 0 <= a, b <= +2147483647, b는 0이 아니다.

참고
C언어에서 정수%정수 연산의 결과는 나눈 나머지로 계산된다.

% 연산자(modulus, mod 연산) 수학자 가우스가 생각해낸 연산으로,
어떤 정수를 다른 정수로 나누고 난 후 남는 나머지를 계산하는 연산이다.

단, 음(-)이 아닌 정수에 대해서만 연산된다.

 

import java.io.IOException;
import java.util.Scanner;

public class Main{
    
    public static void main(String [] args) throws IOException{
        
        Scanner sc = new Scanner(System.in);
        
        int a = sc.nextInt();
        int b = sc.nextInt();
        
        System.out.println(a%b);
        
        
        
        
    }
    
}

 

1044.

정수를 1개 입력받아 1만큼 더해 출력해보자.
단, -2147483648 ~ +2147483647 의 범위로 입력된다.

주의
계산되고 난 후의 값의 범위(데이터형)에 주의한다.

참고
어떤 변수(a)에 값을 저장한 후 a+1 의 값을 출력할 수도 있고,
++a 연산을 한 후에 출력할 수도 있다.

++a, --a, a++, a-- 와 같이 어떤 변수의 앞이나 뒤에 붙여
변수에 저장되어있는 값을 1만큼 더하거나 빼주는 연산자를 증감연산자라고 한다.

증감연산자를 변수 앞에 붙이면 그 변수를 사용하기 전에 증감을 먼저 수행하고,
증감연산자를 변수 뒤에 붙이면 일단 변수에 저장되어있는 값을 먼저 사용하고 난 후
나중에 증감을 수행한다.

import java.io.IOException;
import java.util.Scanner;

public class Main{
    
    public static void main(String [] args) throws IOException{
        
        Scanner sc = new Scanner(System.in);
        
        long a = sc.nextLong();
        
        System.out.println(a+1);
        
        
        
        
    }
    
}
728x90

+ Recent posts