안녕하세요, 작가 J입니다. 이번에는 조금 다른 유형의 문제를 풀어보겠습니다. 정수 n을 입력받아 특정 수열의 n번째 항까지 출력하는 프로그램을 작성할 것입니다. 이 예제는 수열의 규칙을 이해하고 이를 바탕으로 프로그램을 작성하는 방법을 배우는 데 도움이 될 것입니다.
[Java Festival 15] 특정 수열의 n번째 항까지 출력하기
정수 n을 입력받아
1, 2, 4, 7, 11과 같은 수열의
n번째 항까지 출력하시오.
문제 해석
이 수열은 다음과 같은 규칙을 따릅니다:
- 첫 번째 항: 1
- 두 번째 항: 2
- 세 번째 항: 4
- 네 번째 항: 7
- 다섯 번째 항: 11
- 여섯 번째 항: 16
- 일곱 번째 항: 22
항마다 이전 항의 값에 1, 2, 3, 4, 5, 6... 순차적으로 더해지는 것을 알 수 있습니다. 문제를 보고 규칙을 찾아내서 풀이 방법을 생각해내야 합니다.
코드 풀이
이번 문제를 해결하기 위한 자바 코드를 작성해 보겠습니다.
import java.util.Scanner;
public class Ex15 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("n 입력: ");
int n = sc.nextInt();
int num = 1; // 초기값 설정
int currentNum = 0; // 현재 수열의 값을 저장하는 변수
for (int i = 0; i < n; i++) {
currentNum = num + i; // 현재 수열 값 계산
System.out.print(currentNum + " "); // 현재 값 출력
num = currentNum; // 다음 계산을 위해 num 업데이트
}
sc.close();
}
}
코드 설명
1. 초기값 설정 및 변수 선언
수열의 초기값과 현재 값을 저장할 변수를 선언합니다.
- int num = 1;: 수열의 첫 번째 값을 1로 설정합니다.
- int currentNum = 0;: 현재 값을 저장할 변수를 0으로 초기화합니다.
2. 수열 생성 및 출력
수열의 규칙에 따라 값을 계산하고 출력합니다.
- for (int i = 0; i < n; i++): 0부터 n-1까지 반복합니다.
- currentNum = num + i;: 현재 값을 이전 값에 i를 더하여 계산합니다.
- System.out.print(currentNum + " ");: 계산된 현재 값을 출력합니다.
- num = currentNum;: 다음 계산을 위해 num을 현재 값으로 업데이트합니다.
배열을 사용해서 간단히 풀어볼 수도 있을 것 같습니다.
import java.util.Scanner;
public class Ex15 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 n을 입력하세요: ");
int n = sc.nextInt();
int[] sequence = new int[n];
sequence[0] = 1; // 첫 번째 항
for (int i = 1; i < n; i++) {
sequence[i] = sequence[i - 1] + i;
}
for (int i = 0; i < n; i++) {
System.out.print(sequence[i] + " ");
}
sc.close();
}
}
1. 수열 배열 초기화 및 첫 번째 항 설정
수열을 저장할 배열을 초기화하고 첫 번째 항을 설정합니다.
- int[] sequence = new int[n];: 크기가 n인 정수 배열을 생성합니다.
- sequence[0] = 1;: 첫 번째 항을 1로 설정합니다.
2. 수열 생성
수열의 규칙에 따라 배열을 채웁니다.
- for (int i = 1; i < n; i++): 두 번째 항부터 n번째 항까지 순차적으로 값을 계산합니다.
- sequence[i] = sequence[i - 1] + i;: 현재 항의 값을 이전 항의 값에 i를 더하여 계산합니다.
마무리
이번 예제에서는 정수 n을 입력받아 특정 수열의 n번째 항까지 출력하는 방법을 배웠습니다. 이를 통해 수열의 규칙을 이해하고, 이를 바탕으로 프로그램을 작성하는 방법을 익힐 수 있었습니다. 수열을 다루는 능력은 알고리즘 문제 해결에 매우 중요하며, 다양한 문제를 풀어보며 실력을 키워나가는 것이 좋습니다.
프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 다양한 유형의 문제를 통해 여러분의 학습을 도울 수 있도록 노력하겠습니다. 감사합니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] Bonus 03. 연산 메소드 작성하기 (0) | 2024.06.30 |
---|---|
[Java Festival] 16. 8자리 정수의 합 구하기 (0) | 2024.06.29 |
[Java Festival] 14. 스네이크 배열 출력하기 (0) | 2024.06.29 |
[Java Festival] 13. 학생 성적 정보 분석하기 (0) | 2024.06.26 |
[Java Festival] Bonus 02. 단어의 가운데 글자 구하기 (0) | 2024.06.26 |