티스토리 뷰

백준/실버

[백준 8394번] 악수 (C++)

게임개발기원 2023. 12. 1. 21:54

문제링크 : https://www.acmicpc.net/problem/8394

 

8394번: 악수

첫째 줄에 회의에 참석한 사람의 수 n (1 ≤ n ≤ 10,000,000)이 주어진다.

www.acmicpc.net

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = 987654321;

int N;
int dp[10000001];

int main()
{
    ios_base::sync_with_stdio(0); 
	cin.tie(0);
    
    cin >> N;

    dp[0]=1;
    dp[1]=2;

    for(int i=2; i<N; i++)
    {
        dp[i] = (dp[i-1] + dp[i-2]) % 10; //피보차니 수열 (마지막 한자리만)
    }

    cout << dp[N-1];

    return 0;
}

 

직접 경우의 수를 적어보면 피보나치 수열의 점화식을 따른다는 것을 알 수 있다.

여기서 추가적으로 해주어야 할 것은 마지막 자리만 출력한다는 것이다.

따라서 점화식에 %10을 하여 10으로 나눈 나머지만 저장하도록 해준다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함