안녕하세요, 작가 J입니다. 이번에는 정수를 입력받아 1의 자리에서 반올림하는 프로그램을 Java로 작성해 보겠습니다. 이 예제는 간단한 수학적 연산을 통해 프로그래밍 기초를 익히는 데 도움이 될 것입니다.
이번에 풀어볼 문제는 다음과 같습니다.
[Java Festival 08] 정수를 입력받아 1의 자리에서 반올림하기
문제 설명
이 문제는 입력받은 정수를 1의 자리에서 반올림하여 출력하는 프로그램입니다. 반올림은 수학에서 소수점을 기준으로 반올림하는 것과 같은 원리입니다. 예를 들어, 123은 120으로, 128은 130으로 반올림됩니다.
코드 풀이
먼저, 제가 풀이한 코드를 보겠습니다.
import java.util.Scanner;
public class Ex08 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("숫자 입력 : ");
int roundedNum = sc.nextInt();
System.out.println((roundedNum + 5) / 10 * 10);
}
}
다른 부분은 어려운 게 없고, 1의 자리에서 반올림하는 로직만 살펴보면 될 것 같습니다.
입력받은 정수를 1의 자리에서 반올림하는 과정입니다. 반올림을 하기 위해서는 먼저 5를 더한 후, 10으로 나눈 몫을 구하고, 다시 10을 곱하는 방식으로 진행됩니다.
- roundedNum+ 5: 입력받은 정수 num에 5를 더합니다. 이는 1의 자리에서 반올림을 수행하기 위한 준비 단계입니다.
- (roundedNum+ 5) / 10: 10으로 나눈 몫을 구합니다. 이는 소수점 이하를 버리고 정수 부분만 남깁니다.
- (roundedNum+ 5) / 10 * 10: 다시 10을 곱하여 1의 자리에서 반올림된 결과를 얻습니다. 예를 들어, 123이라면 128이 되고, 이를 10으로 나누면 12가 되며, 다시 10을 곱하면 120이 됩니다.
이를 좀 더 풀어서 진행하는 코드도 있습니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요: ");
int num = sc.nextInt();
// 1의 자리에서 반올림
int lastDigit = num % 10;
int roundedNum;
if (lastDigit >= 5) {
roundedNum = num + (10 - lastDigit);
} else {
roundedNum = num - lastDigit;
}
System.out.println("반올림 결과: " + roundedNum);
}
}
- int lastDigit = num % 10;: 입력받은 정수 num의 마지막 자릿수를 구합니다. 예를 들어, 123이라면 lastDigit은 3이 됩니다.
- int roundedNum;: 반올림된 결과를 저장할 변수를 선언합니다.
- if (lastDigit >= 5): 마지막 자릿수가 5 이상인 경우 반올림을 수행합니다.
- roundedNum = num + (10 - lastDigit);: 마지막 자릿수를 반올림하여 결과를 저장합니다. 예를 들어, 128이라면 10 - 8 = 2를 더하여 130이 됩니다.
- else: 마지막 자릿수가 5 미만인 경우 반올림을 수행하지 않습니다.
- roundedNum = num - lastDigit;: 마지막 자릿수를 버리고 결과를 저장합니다. 예를 들어, 123이라면 3을 빼서 120이 됩니다.
마무리
이번 예제에서는 입력받은 정수를 1의 자리에서 반올림하는 방법을 배웠습니다. 이를 통해 간단한 수학적 연산을 활용하여 프로그래밍 문제를 해결하는 능력을 키울 수 있습니다. 또한, 자바의 기본 입력과 출력을 다루는 방법을 익힐 수 있었습니다.
프로그래밍의 기본 원리를 이해하고 이를 응용하는 것은 매우 중요합니다. 특히 이번 예제와 같이 간단한 문제를 해결하는 과정에서 기본기를 탄탄히 다지는 것이 좋습니다. 앞으로도 다양한 예제를 통해 여러분의 프로그래밍 실력을 더욱 향상시킬 수 있도록 노력하겠습니다.
프로그래밍을 처음 시작하는 비전공자도 충분히 이해할 수 있도록 설명을 작성했으니, 도움이 되길 바랍니다. 앞으로도 계속해서 유익한 내용을 공유하도록 하겠습니다. 감사합니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] 10. 배열을 랜덤 수로 초기화하고 최대값과 최소값 출력하기 (0) | 2024.06.23 |
---|---|
[Java Festival] 09. for문을 사용하여 A부터 Z까지 출력하기(ASCII 코드 사용) (0) | 2024.06.23 |
[Java Festival] Bonus 01. 숫자 입력 및 뺄셈 프로그램 (0) | 2024.06.22 |
[Java Festival] 07. 입력받은 행 개수에 따라 역삼각형 모양 별 출력하기 (0) | 2024.06.22 |
[Java Festival] 06. 수열을 이용한 계산 문제 해결하기 (0) | 2024.06.22 |