[C언어 코드업 문제풀이] CodeUp 1091 : [기초-종합] 수 나열하기3

코드업 1091번 수 나열하기3 문제 풀이 해답입니다.

 

1. 문제 설명

 

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

예를 들어
1 -1 3 -5 11 -21 43 ... 은
1부터 시작해 이전에 만든 수에 -2를 곱한 다음 1을 더해 다음 수를 만든 수열이다.

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

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

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

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


시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때,
n번째 수를 출력하는 프로그램을 만들어보자. 

 

2. 입력

 

시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째 인지를 나타내는 정수(n)가
공백을 두고 입력된다.(a, m, d는 -50 ~ +50, n은 10이하의 자연수) 

 

3. 출력

 

n번째 수를 출력한다. 

 

4. 입력 예시

 

1 -2 1 8

 

5. 출력 예시

 

-85

 

6. 문제 풀이

 

#include<stdio.h>
 
int main(){
    
    long long int a,m,d,n;
    scanf("%lld %lld %lld %lld",&a,&m,&d,&n);
    
    for(int j = 1; j <n; j++){
        
        a *= m;
        a += d;
        
    }
    printf("%lld",a);
    
    
    return 0;
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

a m d n 값이 최대로 입력될경우 int형의 표현 크기가 넘어가기에 long long int형을 사용해줍니다.

 

a = a*m + d이므로 

        a *= m;

        a += d;

으로 작성해 주었습니다.

댓글()