怎樣開發(fā)游戲app軟件優(yōu)化推廣網(wǎng)站怎么做最好
1. f[40]={0,1}
數(shù)組賦值:只賦值前兩個(gè)的話,剩余的自動(dòng)為0
2.先要自己寫出斐波拉契數(shù)列判斷一下應(yīng)該要多少個(gè)斐波拉契數(shù)樣例,第39項(xiàng)已經(jīng)超樣例數(shù)500了,所以夠用
3.就是把一個(gè)數(shù)字拆分成斐波拉契數(shù)列里的數(shù)的和嘛,但是要從數(shù)列中最大的數(shù)找,找到了就標(biāo)注二進(jìn)制數(shù)組中為1
4.輸出時(shí)也是以高位開始,但是高位開始的就會(huì)有0不標(biāo)記的,不作數(shù),先排除,遇到第一個(gè)不為0的再把其后面的輸出
#include <iostream>
using namespace std;int main()
{int f[40]={0,1}, b[40], n, m;for (int i = 2; i < 40; i++){f[i] = f[i - 1] + f[i - 2];}cin >> n;while (n--){cin >> m;cout << m << " = ";for (int i = 39; i >= 0; --i){if (f[i] <= m){b[i] = 1;m -= f[i];}else b[i] = 0;}int j = 39;while (!b[j]) --j;while (j >=2) cout << b[j--];cout << " (fib)" << endl;}return 0;
}