问题描述
小蓝定义了一个 Fibonacci 集合 F, 集合的元素如下定义:
-
最小的 5 个 Fibonacci 数 1,2,3,5,8 属于集合 F。
-
如果一个元素 xx 属于 F, 则 3 x+2 、 5 x+3,8x+5 都属于集合 FF。
-
其他元素都不而于 F 。
请问,这个集合中的第 2020 小元素的值是多少?
#include<bits/stdc++.h>
using namespace std;
int main(){
set<int>set1={1,2,3,5,8};
int cost=1;
while (cost<2020)
{
set1.insert((*set1.begin())*3+2);
set1.insert((*set1.begin())*5+3);
set1.insert((*set1.begin())*8+5);
set1.erase(*set1.begin());
cost++;
}
cout<<*(set1.begin());
}