news 2026/1/22 5:25:27

笨人小白的温故知新——递归(4)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
笨人小白的温故知新——递归(4)

1202:Pell数列

其实本来是一段很简单的代码,但是这个题带给我的收获很大,所以我决定来做一个自己的反思回顾。

来讲一下我做这道题遇到的问题(主要是解决运行超时的问题):

1)我一开始并没有用记忆化,导致运行超时。

2)我用了一个记忆化(但是是错的)

long long pell(int k){ if(!pell(k)) return ; }

现在,我已经知道了我的错因:!pell(k)试图判断返回值是否为 0,但pell(k)本身又会无限递归,永远无法执行到后续逻辑;

3)然后我做了如下改动:

const int MOD = 32767 , N = 1e6+10; long long a[N] ; long long pell(int k){ if(a[k] != 0) return a[k] ; if(k == 1) return 1 ; if(k == 2) return 2 ; a[k] = (2*pell(k-1) + pell(k-2))%MOD ; return a[k] ; }

这样,就获得了一个AC代码:

#include <iostream> #include <stdio.h> using namespace std ; const int MOD = 32767 , N = 1e6+10; long long a[N] ; long long pell(int k){ if(a[k] != 0) return a[k] ; if(k == 1) return 1 ; if(k == 2) return 2 ; a[k] = (2*pell(k-1) + pell(k-2))%MOD ; return a[k] ; } int main() { int n , s ; scanf("%d" , &n) ; while(n--){ scanf("%d" , &s) ; printf("%lld\n" , pell(s)) ; } return 0; }

你以为这就结束了?NO~~~ 好奇的我,又换了一种:

a[k] = 2*pell(k-1)%MOD + pell(k-2)%MOD ;

但是却运行超时了。why?

笨笨的我问了豆包,豆包说:

“取模是「相对耗时」的操作

取模(%)本质是除法 + 求余,属于 CPU 的复杂指令(比加法 / 乘法慢得多)。前者只执行 1 次取模,后者执行 2 次,仅这一步就会产生「指令数翻倍」的开销 —— 尤其是在循环 / 递归的高频调用场景下(比如计算 pell (1e5)),两次取模的累计耗时会被放大,最终体现为「后者更慢」。”

今天也回顾了好几道题,但是都比较简单,所以没有写到我的博客里。(嘻嘻

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/7 1:50:55

openFuyao多样化算力使能

一、引言&#xff1a;算力多样化时代的挑战与机遇1.1 当前算力发展趋势在数字经济快速发展的时代&#xff0c;算力已成为新型生产力的核心驱动力。当前算力发展呈现出显著的多样化特征&#xff1a; *异构硬件普遍化*&#xff1a;CPU、GPU、NPU、FPGA等多种处理器架构并存&#…

作者头像 李华
网站建设 2025/12/16 18:43:39

3.1IT治理

1、IT治理的驱动因素&#xff1a;解决信息孤岛 2、IT治理主要目标包括&#xff1a;与业务目标一致、有效利用信息与数据资源、风险管理。 3、管理层次分为三层&#xff1a;最高管理层、执行管理层、业务与服务执行层。 4、IT治理体系的具体构成包括&#xff1a;IT定位、IT治理架…

作者头像 李华
网站建设 2025/12/16 18:43:31

中小企业的营销“暖心伙伴”——北京易美之尚,让增长不再难

“深夜改完的营销方案&#xff0c;投出去却石沉大海&#xff1b;花大价钱引的流量&#xff0c;转头就成了‘一次性过客’”——这大概是很多中小企业主的日常焦虑。在互联网营销的浪潮里&#xff0c;不是不想冲&#xff0c;而是怕方向错&#xff1b;不是没投入&#xff0c;而是…

作者头像 李华
网站建设 2026/1/7 12:04:57

Excalidraw链接功能全解析:超链接与跳转处理

Excalidraw链接功能全解析&#xff1a;超链接与跳转处理 在远程协作日益频繁的今天&#xff0c;一张图是否“能点”&#xff0c;往往决定了它是装饰还是生产力工具。许多团队还在用静态截图传递信息时&#xff0c;另一些人已经通过 Excalidraw 构建起可交互的知识网络——点击一…

作者头像 李华
网站建设 2025/12/29 8:26:15

LobeChat能否实现AI香道师?气味搭配与情绪调节芳香疗法推荐

LobeChat能否实现AI香道师&#xff1f;气味搭配与情绪调节芳香疗法推荐 在快节奏的都市生活中&#xff0c;越来越多的人开始寻求非药物方式来缓解压力、调节情绪。冥想、音乐疗愈、自然接触……而其中&#xff0c;“香气”作为一种古老却始终鲜活的感官媒介&#xff0c;正悄然回…

作者头像 李华