U E D R , A S I H C RSS

1R/2016_10_12 (rev. 1.1)

1R/2016_10_12



1. 오늘의 문제

2. 참가자

  • 15이원준

3. 코드

3.1. 15이원준

#include<iostream>
#include<utility>

using namespace std;

int arr[41][2] = { 0, };

pair<int,int> search(int num){
  if(arr[num][0] + arr[num][1]){
    return make_pair(arr[num][0], arr[num][1]);
  }
  pair<int,int> tmp1 = search(num-1);
  pair<int,int> tmp2 = search(num-2);
  arr[num][0] = tmp1.first + tmp2.first;
  arr[num][1] = tmp1.second + tmp2.second;
  return make_pair(arr[num][0], arr[num][1]);
}

int main(){
  arr[0][0] = arr[1][1] = 1;
  int T;
  cin>>T;
  while(T--){
    int n;
    cin>> n;
    search(n);
    printf("%d %d\n", arr[n][0],arr[n][1]);
  }
}

4. 아이디어

4.1. 15이원준

  • 결국 각 수에 대한 0과 1이 나타는 수를 피보나치와 같이 더해주면 된다.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:08
Processing time 0.0184 sec