首页 > 试题广场 >

计算斐波那契数最小差值

[编程题]计算斐波那契数最小差值
  • 热度指数:3007 时间限制:C/C++ 5秒,其他语言10秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个整数 n ,计算 n 与斐波那契数的最小差值(绝对值)

说明:
斐波那契数定义:
从0,1开始后面的数值为前面两者之和, 即第三个数为第一和第二个数之和
形如:0,1,1,2,3,5,8,13,21。。。。  其中3为1与2的和,5为2与3的和,8为3与5的和等等
要计算的数值案例:
输入15,与斐波那契数相减,与13相减的绝对值是2,与21相减的绝对值是6,与众多斐波那契数相减的最小差值为2
因此输入15,输出2

数据范围:输入的数满足





输入描述:
输入任意整数


输出描述:
一个整数
示例1

输入

15

输出

2

说明

15与“0,1,1,2,3,5,8,13,21。。。。”当中的13差值的绝对值最小,与21的差值为6,与8的差值为7  
示例2

输入

1

输出

0

说明

斐波那契数列中存在 1 ,因此最小差值是 0  
头像 白伟仝
发表于 2020-04-29 11:07:44
O(1)通项公式解法: import java.util.*; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); d 展开全文
头像 bao_hu_yuan_zhang
发表于 2024-02-08 11:43:20
#include <iostream> #include <algorithm> using namespace std; int main() { int n=0; cin>>n; int a=0; int b=1; 展开全文
头像 Bluesky__
发表于 2023-10-10 20:39:47
#include <iostream> using namespace std; int main() { int f,f1=0,f2=1; int N,left=0,right=0; cin>>N; while(1) { 展开全文
头像 _Bingbong
发表于 2024-12-31 15:15:53
解题思路 要找到给定数字 与斐波那契数列中数字的最小差值,需要: 生成斐波那契数列: 从0、1开始 每个数是前两个数的和 生成到不小于 的第一个数为止 计算最小差值: 遍历斐波那契数列 计算每个数与 的差的绝对值 记录最小差值 优化点: 只需要生成到比 大的第一个斐波那 展开全文
头像 想要offer的小狐狸很讲原则
发表于 2024-08-26 18:07:38
#include <stdio.h> #include <math.h> int main(){ int first = 0; int second = 1; int and = first + second; int num = 0; 展开全文
头像 小Cen
发表于 2023-04-06 22:52:04
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = 展开全文
头像 薯条和番茄酱
发表于 2023-04-02 11:00:54
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner scann 展开全文
头像 Runsen
发表于 2021-09-21 18:23:40
n = int(input()) if n <= 3: print(0) else: dp = [0 for _ in range(100)] dp[1] = 1 dp[2] = 1 for i in range(3,len(dp)): 展开全文