문제 설명
=> 피보나치 수열의 갯수를 입력받고, 해당 수열의 마지막 값과 합계, 전체 수열을 열거하시오
=> 피보나치 수열은 이전 값과 현재 값을 더한 결과가 다음 값이 되는 수열입니다.(첫수열 값은 1입니다)
ex) 5번째 피보나치 수열을 구하시오
1번째 : 1 / 2번째 : 0 + 1 = 1 / 3번째 : 1 + 1 = 2 / 4번째 : 1 + 2 = 3 / 5번째 : 2 + 3 = 5
그러므로 5번째 피보나치 수열의 값은 5입니다.
코드 작성 방식
1. 피보나치 수열 갯수를 입력받음
2. 갯수만큼의 크기를 가진 배열 선언
3. 0보다 작은 갯수는 없으므로 예외 메시지 출력 및 return
4. 1개 일경우 초기값이 1이므로 1 반환
5. 2개 이상일 경우 현재 배열의 -2값과 -1값을 더해 현재 값을 입력
6. 5번의 방법을 지정된 횟수만큼 반복하여 값을 입력
7. 형식에 맞게 출력
소스코드
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("피보나치 수열 갯수 지정 : ");
int nTemp = sc.nextInt();
int sum = 1;
int[] arr = new int[nTemp];
if(nTemp<=0) {
System.out.println("잘못된 입력입니다.");
return;
}else if(nTemp == 1) {
arr[0] = 1;
}else {
arr[0] = 1;
arr[1] = 1;
sum += 1;
for(int i=2; i<nTemp; i +=1) {
arr[i] = arr[i-2] + arr[i-1];
sum += arr[i];
}
}
System.out.println(nTemp + "번째 피보나치 수열의 값 : " + arr[nTemp-1]);
System.out.println("값 나열 : " + Arrays.toString(arr));
System.out.println("값들의 합 : " + sum);
}
'Programming > Programming 알고리즘 연습' 카테고리의 다른 글
[Kotlin] 이진법 변환 (0) | 2023.07.19 |
---|---|
Stack 직접 구현하기(Java) (0) | 2021.01.05 |
정수형태 문자열 변환(String->int, int->String) (0) | 2020.07.31 |
피보나치 수열(재귀O) (0) | 2020.07.29 |
진법 변환(2, 8, 16진수) (0) | 2020.07.15 |