본문 바로가기

코드업(CodeUp)/기초 100제

[코드업/자바] 기초 100제 - 정수 2개 입력받아 자동 계산하기

 

1045 : [기초-산술연산] 정수 2개 입력받아 자동 계산하기

 

정수 2개(a, b)를 입력받아 합, 차, 곱, 몫, 나머지, 나눈 값을 자동으로 계산해보자.
단 0 <= a, b <= 2147483647, b는 0이 아니다.

 

입력

정수 2개가 공백을 두고 입력된다.

출력

첫 줄에 합
둘째 줄에 차,
셋째 줄에 곱,
넷째 줄에 몫,
다섯째 줄에 나머지,
여섯째 줄에 나눈 값을 순서대로 출력한다.
(실수, 소수점 이하 셋째 자리에서 반올림해 둘째 자리까지 출력)


입력 예시

10 3

출력 예시

13

7

30

3

1

3.33


자바에서 정수 2개를 공백을 두고 입력해서 받을 때는 String 형태로 받고 split함수로 나눠서 배열에 저장한다.

그리고 첫 번째 배열과 두 번째 배열을 정수형으로 저장한다.

		Scanner sc = new Scanner(System.in);
		String num = sc.nextLine();
		
		String[] numArr = num.split(" ");
		
		int firstNum =Integer.parseInt(numArr[0]);
		int secondNum = Integer.parseInt(numArr[1]);

첫 줄에 합, 둘째 줄에 차, 셋째 줄에 곱, 넷째 줄에 몫, 다섯째 줄에 나머지, 여섯째 줄에 나눈 값(실수, 소수점 이하 셋째 자리에서 반올림해 둘째 자리까지 출력)을 출력한다.

 

이때, 소수점 이하 셋째 자리에서 반올림하여 둘째 자리까지 출력하는 방법은 두가지가 있다.

Math.Round()함수를 사용하거나

String.Format()함수를 이용한다.

 

Math.Round() 함수

소수점 이하 첫째자리에서 반올림해주는 함수로 원하는 자리수까지 표현하려면 10^n을 곱하고 10^n.0으로 나눈다.

 

예를 들어서

소수 첫째 자리까지 나타내고 싶으면

Math.Round(number * 10) / 10.0을 해야하고

 

소수 둘째 자리까지 나타내고 싶으면

Math.Round(number * 100) / 100.0을 해야하고

 

소수 셋째 자리까지 나타내고 싶으면

Math.Round(number * 1000) / 1000.0 이런 식으로 표현해야한다.

 

String.format()함수는

String클래스의 format 메소드는 리턴되는 문자열 형태를 지정하는 함수인데 이 함수를 활용하면 Math.round() 함수와 같이 소수점 n번째 자리까지 반올림하여 나타낼 수 있습니다.

 

double pie = 3.14159265358979;
double money = 4424.243423;
System.out.println(String.format("%.2f", pie)); //결과 : 3.14
System.out.println(String.format("%.3f", pie)); //결과 : 3.142
System.out.println(String.format("%,.3f", money)); //결과 : 4,424.243

출처 : coding-factory.tistory.com/250

 

[Java] 자바 소수점 n번째 자리까지 반올림하기

이번 포스팅에서는 자바에서 긴 소수를 반올림하여 n번째 자리까지 나타내는 방법에 대해 알아보겠습니다. 여러가지 방법이 있겠습니다만 Math.round();함수를 활용하거나 String.format(); 함수를 활

coding-factory.tistory.com

 

그러면 이렇게 작성하면된다.

package excercise;
import java.util.*;

public class codeup {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String num = sc.nextLine();
		
		String[] numArr = num.split(" ");
		
		int firstNum =Integer.parseInt(numArr[0]);
		int secondNum = Integer.parseInt(numArr[1]);
		
		System.out.println(firstNum + secondNum); // 덧셈
		System.out.println(firstNum - secondNum); // 뺄셈
		System.out.println(firstNum * secondNum); // 곱셈
		System.out.println(firstNum / secondNum); // 몫
		System.out.println(firstNum % secondNum); // 나머지
		System.out.println(String.format("%.2f", (double)firstNum / secondNum)); // 소수 두 번째 자리에서 반올림 or
		System.out.println(Math.round(((double)firstNum / secondNum) * 100) / 100.0); // 소수 두 번째 자리에서 반올림
	}
}

 

 

728x90
반응형