日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蓝桥杯 试题 入门训练 Fibonacci数列——9行代码AC

發(fā)布時(shí)間:2024/2/28 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯 试题 入门训练 Fibonacci数列——9行代码AC 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

難點(diǎn):

1、容易習(xí)慣性的使用遞歸解法,但遞歸的時(shí)間復(fù)雜度為O(2^n),超出時(shí)間限制。
2、加一次,就取余一次,避免溢出
3、采用非遞歸很容易想到用數(shù)組存儲(chǔ),空間復(fù)雜度為O(n)。 但更優(yōu)化的解法是:定義兩個(gè)變量交替互換,使空間復(fù)雜度也降低到O(1)
下面我給出兩種代碼,供大家參考。

欠佳的代碼 (時(shí)間:O(n),空間O(n))

#include<iostream> #define Max 1000005 using namespace std; int a[Max]; //注意要定義全局變量,因?yàn)閙ain函數(shù)中的數(shù)組最大容量為50W+ ,會(huì)溢出 int main() {int n;cin >> n;a[0] = 1; a[1] = 1;for(int i = 2; i < n; i++) {a[i] = ((a[i-1]+a[i-2])%10007);}cout << a[n-1];return 0; }

最優(yōu)解(時(shí)間:O(n), 空間:O(1))

#include<iostream> using namespace std; int main() {int n; cin >> n;int n1 = 1, n2 = 1;for(int i = 2; i < n; i++) { int t = n2; n2 = ((n1+n2)%10007); n1 = t; }cout << n2;return 0; }

總結(jié)

以上是生活随笔為你收集整理的蓝桥杯 试题 入门训练 Fibonacci数列——9行代码AC的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。