数列问题

【C/C++】斐波那契数列数列系列问题详解 🍉、什么是斐波那契数列?斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列: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🍉、怎么定义斐波那契数列。 阅读详情

原题网址https://www.nowcoder.com/acm/contest/122/H

观察此题的数据10的18次方,一般情况下肯定会超时。结合之前做过的数列问题,无非就是找规律,多数情况下存在循环结。但是手动阀计算了几个数据后发现并不是那么简单。此题不是用循环结求解。于是用过程序打印出200个数据,规律仍没找到,但收获有一条:n出现第一次的位置为2的n次方减1。于是思路转向推导公式
f[n]=f[n/2]+f[n%2]
(1)当n为偶数时f[n%2]=f[0]=0,所以f[n]=[n/2]若是n/2仍未偶数时,继续往下推。
(2)当n为奇数时f[n%2]=f[1]=1,所以在在这里将f[n/2]加一,f[n/2]计算方法又回到最初判断奇偶性上来了。

不过此题有点小坑的是提交后时间一直是1001ms,本人以为像这种超时这么小的情况下,应该不是算法的问题,而是故意卡了一个硬件运行速度和编译运行速度的差异。所以讲n/=n/2改为n>>=1即可

#include<iostream>
#include<string>
typedef long long ll;
using  namespace std;
 
ll pow(int a, int b) {
    ll ans = 1, base = a;
    while (b != 0) {
        if (b & 1 != 0)
            ans *= base;
        base *= base;
        b >>= 1;
    }
    return ans;
}
 
int main()
{
    ll t;
    ll n, first;
    int res;
    cin >> t;
    while (t--)
    {
        cin >> n;
        res = 0;
        while (n != 0)
        {
            if (n % 2 != 0)
            {
                res += 1;
                n >>=1;
            }
            else
                n >>=1;
        }
        first = pow(2,res) - 1;
        cout << res<<" "<<first<<endl;
    }
    return 0;
}
兔子问题(斐波那契数列) 有这样一个有趣的“兔子问题”:“假定一对大兔子每月能生一对小兔子,且每对新生的小兔子经过一个月可以长成一对大兔子,具备繁殖能力,如果不发生死亡,且每次均生下一雌一雄,问一年后共有多少对兔子?” 分析:第一个月兔子没有繁殖能力,所以还是一对;两个月后生下一对兔子,共有两对;三个月后,老兔子生下一对,小兔子还没有繁殖能力,所以一共是三对,以此类推,可以列出下表 表中1,1,2,3,5,8, 阅读详情

相关推荐

数列极差问题

在黑板上写n个正整数排成一个数列,进行如下操作:每次擦去其中两个数a和b,然后在数列中的加入一个数a×b+1,如此下去,直至黑板上剩下一个数,在所有按这种操作方式最后得到的数中,最大的数记做max,最小的数记做min,则该数列的极差定义为M=max-min。

题目 2340: 数列极差

信息奥赛一本通

weixin_64443786的博客 550

攻克JESD204B多ADC同步:从时钟对齐到数据对齐的实战解析

本文深入解析了JESD204B多ADC同步的系统性挑战与实战解决方案。从确保设备时钟同源、精确捕获SYSREF信号,到管理接收端弹性缓冲区与释放点,文章提供了从时钟对齐到数据对齐的完整调试路径与排查清单,是攻克高速数据采集系统中多片ADC同步难题的实用指南。

weixin_29231725的博客 197

算法4:数列极差问题(贪心算法)

文章目录问题描述:代码及说明 问题描述: 在黑板上写了N个正整数作成的一个数列,进行如下操作: 每次擦去其中的两个数a和b,然后在数列中加入一个数a*b+1,如此下去直到黑板上剩下一个数,在所有按这种方式,最后得到的数中,最大的计作Max、最小的计做Min,则该数列的极差定义为M=Max-Min 问题分析: 通过3,5,7三个数字讨论 (3*5+1)7+1=113 ((37)+1)5+1=1...

Dan的博客 9559

STM32硬件SPI驱动W5500以太网模块全流程(附避坑指南)

本文详细介绍了STM32硬件SPI驱动W5500以太网模块的全流程,包括硬件架构设计、SPI接口选型、官方驱动移植、网络协议栈配置与优化等关键步骤。通过实战案例和性能对比数据,帮助开发者快速实现稳定高效的网络连接,特别提供了常见问题排查指南和性能调优技巧。

weixin_29194693的博客 268

【STM32-DSP库的使用】基于Keil5 + STM32CubeMX + CMSIS-DSP 手动添加、库添加方式

CMSIS-DSP库在工程中应用遇到的所有问题进行归纳终结

洋洋的博客 1万+

数列极差

题目信息 在黑板上写了N个正整数做成的一个数列,进行如下操作: 每一次擦去其中的两个数a和b,然后在数列中加入一个数a×b+1,如此下去直至黑板上剩下一个数。 在所有按这种操作方式最后得到的数中,最大的max,最小的为min,则该数列的极差定义为M=max-min。 输入 多组数据输入 每组数据第一行为N 2&lt;=N&lt;=20 接下来一行,为N个int范围内的正整数。(保证运算过程中数据范...

weixin_39382874的博客 2713

亚博k210视觉模块与stm32双向通信

【代码】亚博k210视觉模块与stm32双向通信。

w_150831的博客 3244

贪心算法:数列极差问题

问题: 问题描述:在黑板上写了N个正整数作成的一个数列,进行如下操作:每一次擦去其中的两个数a和b,然后在数列中加入一个数a*b+1,如此下去直至黑板上剩下一个数,在所有按这种操作方式最后得到的数中,最大的max,最小的为min,则该数列的极差定义为M=max-min。 分析: 思路分析:例如数列1,2,3.按照极差的定义,我们算算这个数列的极差。他有三种情况:(1*2+1)3+1=10,(23+...

weixin_43626529的博客 7085

后向投影算法(BPA)-SAR成像算法系列(二)

SAR成像算法:后向投影算法(BPA)原理介绍及实现步骤解析。

yjh_2019的博客 1万+

SAP ATP检查全解析:从配置到BAPI_RESERVATION_CREATE1应用实例

本文全面解析SAP ATP检查功能,从基础配置到BAPI_RESERVATION_CREATE1高级应用,涵盖物料可用性检查、动态规则设置及性能优化策略。通过实战案例演示如何利用BAPI_MATERIAL_AVAILABILITY实现精准库存承诺,提升供应链效率,特别适合SAP顾问和库存管理人员参考。

dropout6artist的博客 677

【Python】斐波那契数列之兔子问题

兔子问题 1.1.问题描述 斐波那契在计算之书中,提出了一个有趣的兔子问题: 若一对成年兔子每个月恰好生下一对小兔子,一雌一雄,在年初时只有一对小兔子,在第一个月结束时,他们成长为成年兔子,并且第二个月结束时,这对成年兔子将生下一对小兔子,这种成长与繁殖的过程会一直持续下去,并假设生下的小兔子不会死,那么一年之后共可有多少对兔子? 1.2.问题分析 第一个月 1对幼兔 第二个月 1对成...

IGGIRing的博客 1万+

人工智能之数学基础:弄懂数学本质,让我们不再害怕数学

数学的用途远远超过了人们的想象,甚至无处不在,任何领域都需要用到数学知识,人工智能也不例外。我将尽可能地将数学知识和机器学习算法相结合,让大家知道这些数学知识咋人工智能领域中的应用,使得数学的学习不会过于枯燥,同时也帮助大家扫清在学习算法过程中的数学障碍。除此之外,我还希望帮助大家建立一种不一样的数学思维,不再将数学看成是符号的演算、公式的推导,而是将数学看成是一种描述这个世界的工具,这样你就会发现这个世界处处有数学。当我们面对问题的时候,你是否会对问题进行抽象,然后通过数学来解决问题?

huanfeng_AI的博客 627

斐波那契数列【黄金分割数列】-兔子问题

/*********************************************************************************************** *  题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, *  小兔子长到第三后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   *  1.程序分析: 兔子(对)的规

tangdong3415的博客 2641

使用C# HslCommunication库实现三菱PLC通信(含完整代码示例)

在工业自动化开发中,上位机与PLC的通信是关键环节。HslCommunication库是一个开源的.NET工业通信库,支持三菱、西门子、欧姆龙等多个品牌PLC的通信协议。本文将演示如何通过库实现C#程序与三菱PLC的通信,并提供完整的代码示例。

StevenChen的博客 2287

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

费式数列问题

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   程序中的bearAge为3时,即为题目中的3个月,也可以为任意大于等于2个月后生。   package algorithm.fibonacci; import java.util.ArrayList; import java.uti...

xuxujing的专栏 186

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【贪心】数列极差问题

题目描述“我就说你在忽悠我吧,我刚才问了昆士兰大学的好多魔法师,他们根本就没有一个人想过做什么时间旅行的实验,但搞笑的是,他们居然对你的理论很感兴趣,想找个时间和你做进一步的讨论。哎,我还以为他们和我一样聪明呢,想不到这么容易上当受骗。”小墨老师摆出一幅你骗不了我的表情。“唉,你太自以为是了,这样吧,你先把这道数列极差问题发给他们,如果他们能有所领悟,那我会找时间和他们讨论一下时间旅行的可行性的。...

u014788620的博客 9302

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

斐波那契数列('兔子数列')的性能问题

斐波那契数列是典型的递归函数解决问题的算法。 普通的斐波那契数列具有很大的性能问题 // 默认没有缓存时 let tesetNum = 30; console.time('NoCache'); function fibonacci1(n) { if(n==0 || n == 1) return n; re...

MichaelAn的博客 352

斐波那契数列 相关问题 详解

斐波那契数列 相关问题 详解

T_Y_F_的博客 1815

斐波那契数列及相关问题

斐波那契数列是这样一个数列0,1,1,2,3,5,8,13,21......可以很容易的看出斐波那契数列的规律,斐波那契数列的定义如下:            0            n=0 f(n)=    1            n=1        f(n-1)+f(n-2)    n>1 问题:实现一个函数,输入n,求斐波那契数列的第n项 解法一:递归 long l

xu_kelly的专栏 500

斐波那契数列问题(兔子问题)

古典问题: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每 个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1,对于这个一般都知道每个月兔子的对数符合斐波那契数列,但是有一个疑问,就是为什么符合斐波那契数列? 从数学角度来看斐波那契数列就是从第三项开始本项等于前面两项的和,这是对一些特定问题总结出来的数学规律。学数学时只是对这个数列的性质有了初步的了解,遇到一些有关斐波那契数列的具体问题,可以通过斐波那契数列相关运算得出结果,却有了上面的疑问。其实这个很正常,因

Hedong_ling的博客 3899

斐波那契数列问题,青蛙跳台阶问题

1. 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 斐波那契数列公式: f(n)=0 n=0 f(n)=1 n=1 f(n)=f(n-1)+f(n-2) n>1 class Solution { ...

海里波特博客 320

某种数列问题

某种数列问题 (jx.cpp/c/pas) 1000MS 256MB 众所周知,chenzeyu97有无数的妹子(阿掉!>_<),而且他还有很多恶趣味的问题,继上次纠结于一排妹子的排法以后,今天他有非(chi)常(bao)认(cheng)真(zhe)去研究一个奇怪的问题。有一堆他的妹子站成一排,然后对于每个妹子有一个美丽度,当然美丽度越大越好,chenzeyu97妹...

agtvo48266的专栏 148

Fibonacci数列-兔子问题

“”" NAME : Fibonacci数列.py Author: W Date: 4/8/19 Connect: www.1019022410@qq.com Desc: 列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”, 指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定...

qq_41661056的博客 877

斐波那契数列·兔子繁殖问题(python)

问题描述 兔子三个月起每个月生一只小兔子,小兔子长到三个月后每个月有生一直兔子,假如兔子都不死,那么第一个月从一只小兔子到N个月后,问兔子的总数为多少? 分析 得每个月到兔子数量数列: 1 (1)=1 1 (2)=1 1 1 (3)...

sinat_41597065的博客 2万+
上一篇: Linux进阶——基本命令操作学习【一】
下一篇: 线段树(模板题)
玄蛰
博客等级 码龄9年 89粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值