문제 풀이/CodeUp

CodeUp_1091 : 수 나열하기3

윤지(●'◡'●) 2021. 4. 1. 11:30
반응형


▪ 문제 내용

어떤 규칙에 따라 수를 순서대로 나열한 것을 수열이라고 한다.


예를 들어

1 -1 3 -5 11 -21 43 ... 은

1부터 시작해 이전에 만든 수에 -2를 곱한 다음 1을 더해 다음 수를 만든 수열이다.


이런 이상한 수열을 알게 된 영일이는 또 궁금해졌다.


"그럼.... 13번째 나오는 수는 뭘까?"


영일이는 물론 수학을 아주 잘하지만 이런 문제는 본 적이 거의 없었다...


그래서 프로그램을 만들어 더 큰 수도 자동으로 계산하고 싶어졌다.



시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때,

n번째 수를 출력하는 프로그램을 만들어보자.


 

 

▪ 자바 코드

 

import java.util.Scanner;

public class CodeUp_1091 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		long a = sc.nextInt();
		int m = sc.nextInt();
		int d = sc.nextInt();
		int n = sc.nextInt();

		
		for (int i = 1; i < n; i++) {
			a = (a*m)+d;
		}
		System.out.println(a);
	}

}

 

 

▪ 코드 풀이

import java.util.Scanner;

public class CodeUp_1091 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); // Scanner 객체 생성(입력 메소드)
		
        // 값을 입력받아 각 각 a,m,d,n에 저장
		long a = sc.nextInt();
        // a에는 값이 누적되기때문에 int 범위를 벗어나는 경우를 고려해 long으로 선언
		int m = sc.nextInt();
		int d = sc.nextInt();
		int n = sc.nextInt();

		
		for (int i = 1; i < n; i++) { // i가 n보다 작을 때 까지 반복
			a = (a*m)+d; // 시작값 a에 m을 곱하고 d를 더해 저장
		}
		System.out.println(a);
	}

}

 

 

▪ 출력 내용

1 -2 1 8 // 입력
-85 // 출력
반응형