移动宽带 怎么建设网站,石家庄网站开发,产品包装设计与制作,广东省深圳市题目链接#xff1a;http://codeforces.com/problemset/problem/365/B 题目意思#xff1a;简单来说#xff0c;就是要找出最长的斐波纳契长度。 解决的方法不难#xff0c;但是要注意更新左区间和右区间的值#xff0c;而且需要把当前求出的斐波纳契长度和之前求出的斐…题目链接http://codeforces.com/problemset/problem/365/B 题目意思简单来说就是要找出最长的斐波纳契长度。 解决的方法不难但是要注意更新左区间和右区间的值而且需要把当前求出的斐波纳契长度和之前求出的斐波纳契长度进行对比以便更新得出的最长的斐波纳契长度。 特别注意的是序列只有一个、两个或者没有斐波纳契长度的处理。 1 #include iostream2 #include cstdio3 #include cstdlib4 using namespace std;5 6 const int maxn 1e5 5;7 int a[maxn];8 9 int main()
10 {
11 int n, i, l, r, len, lent;
12 while (scanf(%d, n) ! EOF)
13 {
14 // freopen(in.txt, r, stdin);
15 for (i 1; i n; i)
16 scanf(%d, a[i]);
17 lent len l r 1;
18 int flag 0;
19 int flag1 0;
20 for (i 3; i n; i)
21 {
22 if (a[i] a[i-1] a[i-2])
23 {
24 flag1 1;
25 r i;
26 len r - l 1; // 当前长度
27 if (lent len)
28 lent len;
29
30 }
31 else
32 {
33 if (!flag flag1)
34 {
35 lent len; // 第一个求出的斐波纳契长度以便后面下一次求出的斐波纳契长度有得比较
36 flag 1;
37 }
38 l i-1; //更新左区间的下标
39 }
40 }
41 if (!flag1)
42 {
43 if (n 1) //序列只有一个数
44 printf(1\n);
45 else //没有斐波纳契数且序列数目多于一个
46 printf(2\n);
47 }
48 else
49 {
50 printf(%d\n, lent);
51 }
52 }
53 return 0;
54 } 转载于:https://www.cnblogs.com/windysai/p/3436641.html