NOJ1113斐波那契数应用——分解含有贪心

洛谷 P1755 斐波那契的拆分 搜索 阅读详情

斐波那契数应用

Time Limit(Common/Java):1000MS/3000MS          Memory Limit:65536KByte
Total Submit:211            Accepted:132

Description

知道斐波那契数吗?下面是它的一个定义:

  • F1 = 1
  • F2 = 2
  • Fn+1 = Fn+Fn-1 ,这里n>1

     

    每个正整数x 可写为不同斐波那契数的总和,因而意味着存在数k 和数 b1, b2, ..., bk,使得x=b1*F1+ ...+ bi*Fi+ ... +bk*Fk, 其中bk = 1,bi(1≤i < k)为0或1。简言之,我们可写为: b(x) = (bk, bk-1, ..., b1)。 为使表示唯一,我们要求对所有i > 1,bi * bi-1 = 0。

    利用斐波那契数,我们可以将公里单位距离 x 转换为相应的英里单位距离 y,首先,以斐波那契系统表示b(x)写下x。其次,将b(x)中数字右移一位(最后一位删除),得到b(y)。第三,从b(y)中计算总数来算出 y。

    例如,数42以斐波那契系统表示为:(1,0,0,1,0,0,0,0)。第二步,我们通过右移得到 (1,0,0,1,0,0,0)。第三步,我们计算0*1 + 0*2 + 0*3 + 1*5 + 0*8 + 0*13 + 1*21 = 26.

    下面请你写一个程序,根据上述算法将公里转换为英里。

    Input

    输入第一行包含t,需要转换的距离数目 (0<t<25000)。下面t 行的每一个包含一个整数距离x (2 < x < 25000)公里。

    Output

    对于每个距离x 公里,输出算出的y 英里。

    Sample Input

    5
    42
    100
    180
    300
    360

    Sample Output

    26
    62
    111
    185
    222

    Source

    “IBM南邮杯”团队赛2009


    //斐波那契数应用
    #include<stdio.h>
    
    int f[30];
    
    int main()
    {
    	int ncase, x, y;
    	int transform[30];
    	f[0] = 1; f[1] = 2;
    	for(int i=2;i<30;i++)
    		f[i] = f[i-1] + f[i-2];
    	//printf("%d",f[23]);
    	scanf("%d",&ncase);
    	while(ncase--)
    	{
    		y = 0;
    		scanf("%d",&x);
    		for(int i=24;i>=0;i--)
    		{
    			if(x >= f[i])
    			{
    				x -= f[i];
    				transform[i] = 1;
    			}
    			else 
    				transform[i] = 0;
    		}
    		for(int i=1;i<24;i++)
    		{
    			if(transform[i]) y += f[i-1]; // -1 !!!
    		}
    
    		printf("%d\n",y);
    	}
    
    	return 0;
    }


基于斐波那契数列的正整数分解算法 // 给定一个正整数N, 其中 // N = A1 + A2 + ... + An 其中A1, A2, ..., An为斐波那契数列不重复的正整数 (不会有 2个1 这种结果) // 请实现下面的function (function格式请勿修改) // 其中输入参数为N, 返回值为A1, A2, ..., An.的递减数组 // 若找不到结果则返回空数组 // 斐波那契数列定义如下: // F1 = 1 // F2 = 1 // Fn = Fn-1 + Fn-2 // -> 斐波那契数列的值为: 1, 1, 2, 3, 5, 8, 13, 21, 34, .... // Ex input 11 -> output [8, 3] // Ex input 31 -> output [21, 8, 2] 立即下载

相关推荐

基于POI-TL实现动态Word模板数据填充(含图表):从需求到落地的完整开发实践

本文聚焦企业级报告生成场景中 “在线编辑模板 + 动态数据填充” 的核心需求,详细阐述基于 POI-TL、OnlyOffice 与 MinIO 的全栈实现方案。通过代码示例拆解模板加载、文字填充、图表匹配渲染(含通过关系 ID 关联图表与段落的关键逻辑)、报告存储全步骤。最终通过技术组合实现业务人员可视化编辑模板、后端高效填充数据的目标,为同类动态 Word 生成需求提供可复用的实践参考。

imHanweihu的博客 1867

斐波那契数列的分解

\[f[1] = 1,f[2] = 1,……\] \[F_n = \frac{1}{\sqrt{5}} ((\frac{1 + \sqrt{5}}{2})^n - (\frac{1 - \sqrt{5}}{2})^n)\] 转载于:https://www.cnblogs.com/AlphaWA/p/11372043.html

702

打包可以在Hadoop 3.3.1和Hive 3.1.2上使用的Tez 0.10.1 minimal

编译打包可以在Hadoop 3.3.1和Hive 3.1.2上使用的Tez 0.10.1

qq_42013533的博客 2618

NOJ1113 斐波那契数应用 模拟

题目描述知道斐波那契数吗?下面是它的一个定义: F1 = 1 F2 = 2 Fn+1 = Fn+Fn-1 ,这里n>1每个正整数x 可写为不同斐波那契数的总和,因而意味着存在数k 和数 b1, b2, …, bk,使得x=b1*F1+ …+ bi*Fi+ … +bk*Fk, 其中bk = 1,bi (1≤i < k)为0或1。简言之,我们可写为: b(x) = (bk, bk-1, …, b1

Bill_Utada的成长之路 1378

Matlab双目相机标定

1 概述 现在有许多双目相机在出厂时就已经标定好了,用户拿到手后可以直接使用,例如Intel Realsense系列。但是有些相机出厂的时候并没有完成标定工作,因而这个时候就需要我们自己来标定。由于笔者曾改装过一个双目相机,最远可以测至50m,因此有一定的心得体会想给大家分享一下。本文主要介绍双目相机标定的整个过程,以及导出标定数据的方法。 相机标定主要分为手动标定和自动标定,手动标定比较繁琐,这里主要介绍基于matlab工具箱的自动标定方式来对双目相机进行标定。具体的相关标定细节也可以参照这篇博客:m

weixin_46133643的博客 2万+

android mtk camera如何自定义默认拍照与录像分辨率

本文详细解析了在Android MTK平台上自定义相机默认拍照与录像分辨率的方法。通过分析Camera2应用默认选择逻辑,定位并修改PictureSize.java与VideoQualityCaptureRequestConfig.java中的关键代码,实现绕过系统智能选择,强制指定最高或特定分辨率。文章还提供了进阶的可配置化方案与验证避坑指南,帮助开发者精准控制相机行为。

weixin_29194817的博客 434

【动态规划篇】斐波那契数列&&拆分词句&&三角矩阵

动态规划(Dynamic Programming,简称为 DP)是分治思想的延伸,通俗来说就是大事化小,小事化了的艺术。在将大问题化解为小问题的分治过程中,保存对这些小问题已经处理好的结果,并供后面处理更大规模的问题时直接使用这些结果。把原来的问题分解成了几个相似的子问题所有的子问题都只需要解决一次储存子问题的解动态规划的本质,是对问题状态的定义和状态转移方程的定义(状态以及状态之间的递推关系),动态规划问题一般从以下四个角度来考虑:状态定义、状态间的转移方程定义、状态的初始化和返回结果。

joy.728的博客 1019

招财牛猫|股社区|猫笔刀公众号历史文章13-21年(含评论),投资内容 收藏学习

招财大牛猫|股社区|猫笔刀公主号历史文章13-21年(含评论)

ZhaoCaiDaNiuMao的博客 7239

斐波那契数列的四种解法

题目描述 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 1963 年起

LXYDSF的博客 7966

《DeepJIT: An End-To-End Deep Learning Framework for Just-In-Time Defect Prediction》论文笔记

软件工程任务:即时缺陷预测(涉及SE+AI知识)

weixin_43646592的博客 703

从零开始用 C# 打造工业级上位机系统:完整项目实战

本文介绍了一个基于C#开发的工业级上位机系统项目。该系统采用分层架构设计,包含通信、数据采集、UI展示、告警日志等模块,支持Modbus协议和串口通信。文章详细阐述了系统架构设计、关键模块实现(如Modbus通信封装、实时数据采集、告警系统等)以及性能优化策略。该项目已在实际工控场景中稳定运行超过1年,具备良好的可扩展性和稳定性,适合有一定C#基础的开发者参考学习工业软件开发实践。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1368

递归 - 整数拆分为斐波拉契数列的和

Fibonacci 时间限制: 2 Sec  内存限制: 128 MB 题目描述 Fibonacci numbers are well-known as follow: Now given an integer N, please find out whether N can be represented as the sum of several Fibonacci n

note_online 2347

Cesium中级开发教程之五十二:气泡弹窗

支持多种交互方式触发气泡弹窗显示,如鼠标悬停、点击地图上的特定元素(像实体、标注、模型等)。例如,当用户鼠标悬停在一个表示城市的点上时,弹出显示该城市名称、人口等信息的气泡。:依据特定的数据条件或业务逻辑触发。比如,当某个区域的气象数据达到一定阈值时,自动弹出显示相关气象预警信息的气泡。

664

编程题之斐波那契数列分解

题目如下: 解法一:深度搜索+回溯(代码如下) #include #include #include #include #include #include using namespace std; void caculate_all(int data,vector&tmp){//求出所有小于或等于待求解数的所有斐波那契数列 int a = 1, b = 1,temp=0; tm

caoyan_12727的博客 1832

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

哈理工OJ 2170 大斐波那契数(大数加法)

#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int f[1005][300]; int main() { int n,pi; scanf("%d",&n); while(n--) { int t;//用t计录第一个不为零数的位置

linlinsong—ACM界蒟水! 833

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

[构造 || 斐波那契分解] BZOJ 2912 [Poi1997]Jump

论文:何林--信息学中的守恒法 构造就不摘了 摘录fib分解的做法 #include #include #include #include #include using namespace std; typedef long long ll; const int con=100000000; class Int{ public:long long a[1000];

雯舞 978

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

洛谷P1755 斐波那契的拆分

题目背景 无 题目描述 已知任意一个正整数都可以拆分为若干个斐波纳契数,现在,让你求出n的拆分方法 输入输出格式 输入格式: 一个数t,表示有t组数据 接下来t行,每行一个数n(如题) 输出格式: t行,每行一个字符串,表示拆分方法(格式:n=a1+a2+a3+..+an),要求从小到大输出 输入输出样例 输入样例#1...

dezhen7015的博客 549

HITOJ 1864 求Fibonacci数列的位数

http://acm.hit.edu.cn/hoj/problem/view?id=1864

ACM,再见! 1274

【HPUOJ】1471 -又是斐波那契数列??(hash)

1471: 又是斐波那契数列??时间限制: 1 Sec&nbsp;内存限制: 128 MB提交: 322&nbsp;解决: 41&nbsp;统计题目描述 大家都知道斐波那契数列吧?斐波那契数列的定义是这样的: f0 = 0; f1 = 1; fi = fi-1 + fi-2 现在给你一个数x,聪明的你一定知道这是斐波那契...

Dicer_的博客 800

数据结构:斐波那契查找原理解析

//原文来自:http://blog.chinaunix.net/uid-27164517-id-3313988.html #include #include #define MAXSIZE 13 void Fibonacci(int *f) { f[0] = 1; f[1] = 1; for (int i = 2; i < MAXSIZE; i++) { f[i] = f

憧憬,思考,奋斗,飞翔 3877

数字拆分为斐波那契数列_检查数字是否为斐波那契

数字拆分为斐波那契数列Description: 描述: We are often used to generate Fibonacci numbers. But in this article, we are going to learn about how to search Fibonacci numbers in an array? 我们经常被用来产生斐波那契数。 但是在本文中,我们将...

cumtb2002的博客 1050

关于斐波那契数列三种解法及时间复杂度分析

斐波那契数列: f(n)=f(n-1)+f(n-2); n>=2 f(0)=0; f(1)=1; 即有名的兔子繁衍问题。 斐波那契数列共有三种解法,因而写这篇文章总结一下。 1. 递归求解 递归求解比较简单,是大家常见的一种解法。int fibonacci(int n) { cout<<"calculat

beautyofmath的博客 6万+

斐波那契?

#include &lt;stdio.h&gt; #include &lt;math.h&gt; int zxd(int n); int main() { int n; scanf("%d",&amp;n); int x = zxd(n); printf("%d",x); return 0; } int zxd(int n) { int y;...

zxd_dd的博客 655

算法竞赛中常见的数学(一):Fibonacci数列

最近做的题目有很多都是与Fabonacci数列有关的,身为信息组蒟蒻的我最近经常与数学组李中一大神(Orz)畅谈,其中包括Fabonacci数列的若干性质,此处做一个总结。 参考资料: 《组合数学(第5版)》、《具体数学(第2版)》 Fibonacci数列是形如0、1、1、2、3、5、8、13、21、34……的数列。递归形式定义为: 数列F[n]=F[n-1]+F[n-

yyh5900的专栏 1154
上一篇: NOJ1110奇数排序——超时,看写法,需要较灵活的思维!
下一篇: NOJ1114合法日期——趣题,公式,细节
tcherry
博客等级 码龄16年 46粉丝 161原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值