储存高精长整型の另一种思路——二维数组

利用二维数组储存高精长整型

  • 题目
  • 解题思路
  • 问题解决
  • 代码实现
  • 总结反思

题目

luogu P2437 蜜蜂路线
1

解题思路

  最初只觉得是一道很简单的递推

  先考虑从第一个点出发的情况,对于第 k ( k ≥ 3 ) k (k≥3) k(k3)个点,路线数表示如下:
a [ k ] = a [ k − 1 ] + a [ k − 2 ] a[k]=a[k-1]+a[k-2] a[k]=a[k1]+a[k2]  接下来我们开始考虑不从第一个点开始的情况,即从第 m m m个点到第 n n n个点的路线数,可以平替为从第 1 1 1个点到第 n − m + 1 n-m+1 nm+1个点的爬行路线。

  对你想的没错,就是我们熟悉的斐波那契数列,当我最初看到数据范围 n , m ≤ 1000 n,m≤1000 n,m1000 时我不以为意,但上去就WA了,意识到事情不对了。
  我们要意识到,斐波那契的第1000项是这个数字:

43466557686937456435688527675040625802564660517371780402481729089536555417949051890403879840079255169295922593080322634775209689623239873322471161642996440906533187938298969649928516003704476137795166849228875

  不会高精度的我陷入了沉思… …

  还好看到了一位 d a l a o dalao dalao为纯小白准备的解决方案

问题解决

  我们准备一个二维数组 f [ i ] [ j ] f[i][j] f[i][j] ,表示第1个点到第 i i i个点的路线数的第 j j j位的数字是 f [ i ] [ j ] f[i][j] f[i][j]

  对于第 i i i 个点 f [ i ] [ j ] f[i][j] f[i][j] 的计算方式如下:

void ad(int x)
{int i;for(i=1;i<=len;++i) f[x][i]=f[x-1][i]+f[x-2][i];for(i=1;i<=len;++i){if(f[x][i]>9){f[x][i+1]+=f[x][i]/10;f[x][i]%=10;}}if(f[x][len+1]) len++;
}

  逢十进一,通俗易懂

  这样就能让每一个 f [ i ] [ j ] f[i][j] f[i][j]都只储存一位数字,不用害怕超过储存范围的问题。最大的 m a x n u m maxnum maxnum有几位,第二维度开多大即可。

代码实现

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int m,n,len=1; 
int f[1005][1005];
void ad(int x)
{int i;for(i=1;i<=len;++i) f[x][i]=f[x-1][i]+f[x-2][i];for(i=1;i<=len;++i){if(f[x][i]>9){f[x][i+1]+=f[x][i]/10;f[x][i]%=10;}}if(f[x][len+1]) len++;
}
int main()
{scanf("%d%d",&m,&n);f[1][1]=1; f[2][1]=1;int i;for(i=3;i<=n-m+1;++i)	ad(i);for(i=len;i;i--) printf("%d",f[n-m+1][i]);return 0;
} 

总结反思

1、学到了存储长整型的一种不一样的方式,以后可以多做尝试。
2、高精度的系统学习是时候提上日程了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/112003.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【二叉搜索树】将有序数组转换为二叉搜索树-力扣 108 题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

人工智能AI 全栈体系(四)

第一章 神经网络是如何实现的 除了全连接神经网络外&#xff0c;还有其他形式的神经网络。 此节将讲述神经网络的另一种形式&#xff1a;卷积神经网络。 四、卷积神经网络 首先我们看看全连接神经网络有什么不足。正如其名字一样&#xff0c;全连接神经网络&#xff0c;两个…

vscode json 无决找到“e:\...“

在上一章中提到了解决 无法使用 compilerPath 的问题&#xff0c;该问题明显是相对路径配置错误。 但是解决该问题后&#xff0c;发现输出了新的问题: 由该输出可知&#xff0c;在 e:\gitsource\ODrive-fw-v0.5.1\Firmware\ 路径下未找到 D:\gcc-arm-none-eabi-10.3-2021.10…

004-Windows下开发环境搭建

Windows下开发环境搭建 文章目录 Windows下开发环境搭建项目介绍版本控制工具Git 与 SVNWindow下安装Git Qt 开发工具静态编译Qt环境安装 串口模拟器比较工具SQLite 数据库查看小工具预告 关键字&#xff1a; Qt、 Qml、 开发环境、 Windows、 C 项目介绍 欢迎来到我们的 …

Postman应用——接口请求(Get和Post请求)

文章目录 新增请求Get请求Post请求 这里只讲用的比较多的Get和Post请求方式&#xff0c;也可以遵循restful api接口规范&#xff0c;使用其他请求方式。 GET&#xff08;SELECT&#xff09;&#xff1a;从服务器取出资源&#xff08;一项或多项&#xff09;POST&#xff08;CR…

控制台日志打印console的封装,加入美化与打印开关

控制台日志打印console的封装&#xff0c;加入美化与打印开关 为什么要写这个&#xff1f; 封装这个控制台日志打印工具&#xff0c;主要是在项目中自己做的SDK需要提供给其他开发人员使用&#xff0c;加入了日志美化和打印打开&#xff0c;方便了开发人员查找SDK中的日志&am…

目标检测前言,RCNN,Fast RCNN,Faster RCNN

一、RCNN&#xff1a; 找到概率最高的目标之后&#xff0c;与其他目标进行IOU交并比计算&#xff0c;若高于一定值&#xff0c;则说明这两张图片预测的是同一个目标&#xff0c;则把概率低的目标删掉 二、Fast RCNN 因为是直接得到特征图之后进行映射&#xff0c;所以不限制输入…

uniapp抽取组件绑定事件中箭头函数含花括号无法解析

版本: "dcloudio/uni-ui": "^1.4.27", "vue": "> 2.6.14 < 2.7"... 箭头函数后含有花括号的时候, getData就拿不到val参数 , 解决办法就是去除花括号 // 错误代码: <SearchComp change"(val) > { getData({ val …

【大数据】Doris 构建实时数仓落地方案详解(二):Doris 核心功能解读

Doris 构建实时数仓落地方案详解&#xff08;二&#xff09;&#xff1a;Doris 核心功能解读 1.Doris 发展历程2.Doris 三大模型3.Doris 数据导入4.Doris 多表关联5.Doris 核心设计6.Doris 查询优化7.Doris 应对实时数仓的痛点 1.Doris 发展历程 Apache Doris 是由 百度 研发并…

讨论问题--数据类型、数组、传值/址API函数等

前言 数据类型是编程语言中用于表示数据的分类。常见的数据类型包括整数、浮点数、字符串、布尔值等。数据类型决定了变量能存储的值的种类和范围。 数组是一种存储多个相同类型数据的数据结构。它通过索引来访问并操作其中的元素。数组在内存中是连续存储的&#xff0c;可以…

OpenCV之YOLOv2-tiny目标检测

&#x1f482; 个人主页:风间琉璃&#x1f91f; 版权: 本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 目录 前言 一、YOLOv2-tiny介绍 二、预处理 三、模型加载与推理 四、解析输…

ros----发布者和订阅者模型

话题模型&#xff1a; 如何自定义话题消息 1.定义msg文件 2.在package.xml中添加功能包依赖 <build_depend>message_generation</build_depend> <exec_depend>message_runtime</exec_depend>3.在CMakeList.txt文件中添加编译选项 4.编译生成语言的相…