当前位置: 首页 > news >正文

蓝桥杯 - 每日打卡(类斐波那契循环数)

题目:

在这里插入图片描述

解题思路:

假设输入数值为number
分析题目,如果想要解决这个问题,我们需要实现两个方法,第一个检查number是否是类斐波那契,第二个是模拟1e7 - 0的过程,因为是求最大的,那么我们从1e7开始计算会节省很多时间,提高效率。
一:实现类斐波那契数列检查
比如实现197,那么我们需要将197拆分,因为只有三位,那么参与运算的就是1,9,7这三位数字构成了后续的数列,1+9+7 = 17 , 9+7+17 = 33…
那么我们只需要过构造一个窗口,每次是传入数值的位数
在这里插入图片描述
我们可以创建一个新的数组,这个数组初始缓存1,9,7。然后窗口大小是传输 数字的位数,此时 a4 = a1+a2+a3 ,然后窗口移动,直到计算出 an == number 返回 true,如果an > number 那么就应该结束

代码:

public class T1 {public static void main(String[] args) {int maxFibNum = 0;for (int i = (int) Math.pow(10, 7); i >= 0; i--) {if (check(i)) {maxFibNum = i;break;}}System.out.println("最大的类斐波那契循环数:" + maxFibNum);}public static boolean check(int num) {if (num == 0) return true;int[] arr = new int[10];int len = 0;int temp = num;while (temp > 0) {arr[len++] = temp % 10;temp /= 10;}int[] digits = new int[len];for (int i = 0; i < len; i++) {digits[i] = arr[len - 1 - i];}
//        构造的新的队列
//        为什么构造这个100,这个需要你尝试从小到大,如果100 和 500 结果一样,那么就证明这个数值设置的合理int[] newArray = new int[100];System.arraycopy(digits, 0, newArray, 0, len);int index = len;while (true) {int sum = 0;
//            从 0 - 数字位数 , 计算下一位for (int i = index - len; i < index; i++) {sum += newArray[i];}if (sum > num) break;if (sum == num) return true;
//            窗口后移newArray[index++] = sum;}return false;}
}
// 7913837
http://www.lryc.cn/news/547217.html

相关文章:

  • 深入探索C++17文件系统库:std::filesystem全面解析
  • LLM | 论文精读 | GIS Copilot : 面向空间分析的自主GIS代理
  • Unity 适用Canvas 为任一渲染模式的UI 拖拽
  • 基于遗传算法的无人机三维路径规划仿真步骤详解
  • windows下使用Hyper+wsl实现ubuntu下git的平替
  • 基于Java+SpringCloud+Vue的前后端分离的房产销售平台
  • 以影像技术重构智能座舱体验,开启驾乘互动新纪元
  • deepseek在pycharm 中的配置和简单应用
  • LLM大型语言模型(一)
  • 尚庭公寓项目记录
  • 飞算JavaAI编程工具集成到idea中
  • 【每日八股】计算机网络篇(二):TCP 和 UDP
  • 课程《MIT Introduction to Deep Learning》
  • GCC RISCV 后端 -- C语言语法分析过程
  • UI组件库及antd
  • Windows下使用ShiftMediaProject方法编译FFmpeg
  • 【计算机网络入门】TCP拥塞控制
  • 无人机遥控器无线传输技术解析!
  • 修改hosts文件,修改安全属性,建立自己的DNS
  • MySQL零基础教程16—表连接进阶
  • 【软件系统架构】系列三:数据库系统之三
  • lamp平台介绍
  • 826考研
  • 局域网自动识别机器名和MAC并生成文件的命令
  • todo: 使用融云imserve做登录(android)
  • Mac OS升级后变慢了,如何恢复老系统?
  • cursor使用经验分享(java后端服务开发向)
  • 初次使用 IDE 搭配 Lombok 注解的配置
  • vue 安装依赖npm install过程中报错npm ERR! cb() never called!
  • android接入rocketmq