[C++] BOJ 2749๋ฒˆ: ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 3

2022. 6. 20. 20:51ยท์•Œ๊ณ ๋ฆฌ์ฆ˜/BaekJoon
728x90

 

๋ฌธ์ œ

์ฒซ์งธ ์ค„์— n์ด ์ฃผ์–ด์ง„๋‹ค. n์€ 1,000,000,000,000,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

 

์ž…๋ ฅ 1

1000

์ถœ๋ ฅ 1

228875

์ฝ”๋“œ

#include<iostream>
#include<cmath>

using namespace std;

//2749๋ฒˆ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 3
//ํ”ผ์‚ฌ๋…ธ ์ฃผ๊ธฐ๋ฅผ ์ด์šฉ

long long arr[1500050];     //๋ฉ”๋ชจ์ด์ œ์ด์…˜
int m = 1000000;            //๋‚˜๋ˆ„๋Š” ์ˆ˜
int cycle;

int cycle_func() {
    int k=0,tmp=m;
    while (tmp > 1) {
        tmp /= 10;
        k++;
    }

    return 15 * pow(10, k - 1);
}

void pisano_fibo() {
    arr[0] = 0;
    arr[1] = 1;
    //ํŒŒ์‚ฌ๋…ธ ์ฃผ๊ธฐ์— ์˜ํ•˜์—ฌ 1500000์˜ ๊ฐ’๋“ค์ด ๋ฐ˜๋ณต๋œ ํ›„์— ๋‹ค์‹œ ์žฌ ๋ฐ˜๋ณต๋จ
    cycle = cycle_func();
    for (int i = 0; i < cycle; i++) {
        arr[i + 2] = (arr[i+1]+arr[i])%m;
    }
}

int main() {

    cin.tie(NULL);cout.tie(NULL);
    ios::sync_with_stdio(false);

    long long n;
    cin >> n;
    pisano_fibo();
    cout << arr[n % cycle];

    return 0;
}

 

*๊ฐ„๋‹จํ•œ ํ•ด์„ค*

ํ”ผ์‚ฌ๋…ธ ์ฃผ๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‘ธ๋Š” ๋ฌธ์ œ์ด๋‹ค ๊ธฐ๋ณธ์ ์œผ๋กœ n์˜ ๋ฒ”์œ„๊ฐ€ 1,000,000,000,000,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด์— ์“ฐ๋˜ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ์„œ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์€ ์‹œ๊ฐ„์ด ๋งค์šฐ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฏ€๋กœ ์“ธ์ˆ˜๊ฐ€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ํ”ผ์‚ฌ๋…ธ ์ฃผ๊ธฐ๋ฅผ ํ†ตํ•ด ๋ฐ˜๋ณต ์ฃผ๊ธฐ๋ฅผ ์ฐพ๊ณ  ๊ทธ ์ฃผ๊ธฐ๋™์•ˆ์˜ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์—์„œ m์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์„ ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค. ๊ทธ ํ›„ ์ €์žฅํ•œ ๋ฐฐ์—ด์—์„œ ์ฐพ๊ณ ์ž ํ•˜๋Š” n๋ฒˆ์งธ๊ฐ€ ์ฃผ๊ธฐ์—์„œ ๋ช‡๋ฒˆ์งธ ์ˆซ์ž์ธ์ง€ ์ฐพ์•„๋‚ด์„œ ํ•ด๋‹น ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ํ”ผ์‚ฌ๋…ธ ์ฃผ๊ธฐ๋Š”

๋‚˜๋ˆ„๋Š” ๊ฐ’์„ M์ด๋ผ๊ณ  ์ง€์นญํ–ˆ์„ ๋•Œ,

M=10^k , cycle = 15 x 10^(k-1)

์ด๋‹ค.

 

 

 

 

*์ด ๋ฐฉ๋ฒ•๋งŒ์ด ๋งž๋Š” ์ •๋‹ต์€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ›จ์”ฌ ์ข‹๊ณ  ๋น ๋ฅธ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค ํ™”์ดํŒ…! '0'/*

๋ฐ˜์‘ํ˜•

'์•Œ๊ณ ๋ฆฌ์ฆ˜ > BaekJoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[C++] BOJ 2178๋ฒˆ: ๋ฏธ๋กœ ํƒ์ƒ‰  (0) 2022.07.05
[C++] BOJ 6087๋ฒˆ: ๋ ˆ์ด์ € ํ†ต์‹   (0) 2022.06.28
[C++] BOJ 2244๋ฒˆ: ๋ฏผ์ฝ”์šฐ์Šคํ‚ค ํ•ฉ  (1) 2022.06.13
[C++] BOJ 2933๋ฒˆ: ๋ฏธ๋„ค๋ž„  (0) 2022.06.13
[C++] BOJ 1655๋ฒˆ: ๊ฐ€์šด๋ฐ๋ฅผ ๋งํ•ด์š”  (1) 2022.06.08
'์•Œ๊ณ ๋ฆฌ์ฆ˜/BaekJoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [C++] BOJ 2178๋ฒˆ: ๋ฏธ๋กœ ํƒ์ƒ‰
  • [C++] BOJ 6087๋ฒˆ: ๋ ˆ์ด์ € ํ†ต์‹ 
  • [C++] BOJ 2244๋ฒˆ: ๋ฏผ์ฝ”์šฐ์Šคํ‚ค ํ•ฉ
  • [C++] BOJ 2933๋ฒˆ: ๋ฏธ๋„ค๋ž„
KiTFOx
KiTFOx
  • KiTFOx
    KiTFOx's Notepad ๐Ÿ“
    KiTFOx
  • ๊ณต์ง€์‚ฌํ•ญ

    • ๐Ÿ“ข KiTFOx
  • 250x250
    • KiTFOx (118)
      • ๊ณต๋ถ€ (8)
        • Cใ†C++ (7)
        • Design Pattern (2)
        • Crowd Simulation (2)
        • LearnOpenGL ๋ฒˆ์—ญ (3)
        • OpenGL ์ž๋ฃŒ ๋ฒˆ์—ญ (2)
        • OpenGL (1)
        • UE ์ž๋ฃŒ ๋ฒˆ์—ญ (1)
        • AR (0)
        • OpenCV (0)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (50)
        • ์ž๋ฃŒ๊ตฌ์กฐ (3)
        • BaekJoon (35)
        • Programmers (11)
      • OpenGL ๋”ฐ๋ผ๊ฐ€๊ธฐ (2)
      • ๊ฒŒ์ž„์—”์ง„ (15)
        • Unity (13)
        • UE4 (0)
        • UE5 (2)
      • ๋ฉ”ํƒ€๋ฒ„์Šค (4)
        • Engage VR (3)
        • Altspace VR (1)
      • ํฌํŠธํด๋ฆฌ์˜ค ํ”„๋กœ์ ํŠธ (2)
        • NewRo (1)
        • Amaimon(Unity3D) (0)
        • ArenaSurvival(UE5) (0)
      • ๊ฐœ๋ฐœ์ผ์ง€ (1)
        • Pub-Simulator (1)
        • Project-B (0)
      • ๋„คํŠธ์›Œํฌ (4)
      • Etc Study (5)
      • ๋Œ€์™ธํ™œ๋™ (8)
        • ํฌ๋ž˜ํ”„ํ†ค ์ •๊ธ€ ๊ฒŒ์ž„๋žฉ (6)
      • ํšŒ๊ณ ๋ก (0)
      • ๊ฒŒ์ž„ ํ•œ๊ธ€ํŒจ์น˜ (0)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
KiTFOx
[C++] BOJ 2749๋ฒˆ: ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 3
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”