2703 问题 D: 蓝桥杯2022年第十三届决赛真题-斐波那契数组(C/C++/Java组)

时间限制: 1s 内存限制: 256MB 提交: 2640 解决: 444
题目描述

如果数组 A = (a0, a1, · · · , an−1) 满足以下条件,就说它是一个斐波那契数组:

1. n ≥ 2;

2. a0 = a1

3. 对于所有的 i(i ≥ 2),都满足 ai = ai−1 + ai−2

现在,给出一个数组 A ,你可以执行任意次修改,每次修改将数组中的某个位置的元素修改为一个大于 0 的整数。请问最少修改几个元素之后,数组 A 会变成一个斐波那契数组。

输入

输入的第一行包含一个整数 n ,表示数组 A 中的元素个数。

第二行包含 n 个整数 a0, a1, · · · , an−1,相邻两个整数之间用一个空格分隔。 

输出
输出一行包含一个整数表示最少需要修改数组 A 中的几个元素之后,数组 A 可以变为一个斐波那契数组。
样例输入
5
1 2 2 4 8
样例输出
3
提示

将原数组修改为 (1, 1, 2, 3, 5),最少修改三个元素变成了一个斐波那契数组。

对于所有评测用例,2 ≤ n ≤ 105 ,1 ≤ ai ≤ 106

比赛公告

Dotcpp编程2022年六月月赛,欢迎报名参赛!

蓝桥杯决赛刚刚结束,快来测测身手吧!

比赛结束后欢迎提交题解,获得优质题解的小伙伴将获得小礼品一份~


PS:Dotcpp支持创建自主比赛,适合社团、老师教学训练,欢迎使用!