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

news/2025/3/4 17:26:37/

题目:

在这里插入图片描述

解题思路:

假设输入数值为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 那么就应该结束

代码:

java">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.ppmy.cn/news/1576596.html

相关文章

Spring Boot 集成 EasyExcel 导出 Excel 文件【复杂表头】

前言&#xff1a; Excel 导出在项目开发中是一个非常常见的业务场景&#xff0c;通过 Java 相关的类库可以轻松实现 Excel 的读写操作&#xff0c;常见的类库有 Apache POI、EasyPoi 和 EasyExcel&#xff0c;本篇我们要分享的是使用 EasyExcel 完成复杂表头的 Excel 导出&…

csrf与ssrf学习笔记

一、CSRF&#xff08;Cross-Site Request Forgery&#xff09; 1. 定义 攻击目标&#xff1a;利用用户已登录的合法身份&#xff0c;在用户不知情的情况下发起恶意请求。 核心条件&#xff1a;受害者需已登录目标系统&#xff0c;且浏览器会自动携带身份凭证&#xff08;如 C…

Spring源码分析の配置类解析

文章目录 前言一、processConfigBeanDefinitions1.1、checkConfigurationClassCandidate1.2、parse1.2.1、处理配置类标记了Component 的情况1.2.2、处理 ComponentScan 注解 总结 前言 在Spring的注解模式中&#xff0c;通常在构造AnnotationConfigApplicationContext时需要传…

vue全局注册组件

1、Vue.component 是 Vue 提供的一个全局 API&#xff0c;用于注册一个全局组件。这意味着你可以在应用的任何地方使用这个组件&#xff0c;而无需再次引入。 使用方法&#xff1a; import Vue from vue; import MyComponent from ./MyComponent.vue;// 注册全局组件 Vue.com…

游戏引擎学习第129天

仓库:https://gitee.com/mrxiao_com/2d_game_3 小妙招: vscode:定位错误行 一顿狂按F8 重构快捷键:F2 重构相关的变量 回顾并为今天的内容做准备 今天的工作主要集中在渲染器的改进上&#xff0c;渲染器现在运行得相当不错&#xff0c;得益于一些优化和组织上的改进。我们计…

蓝桥备赛(七)- 函数与递归(中)

一、函数重载 1.1 重载概念 引入&#xff1a; 比如&#xff1a;如果我们现在想要写一个函数 &#xff0c; 求两个整数的和 &#xff1a; #include <cstdio> #include <iostream> using namespace std;int IntAdd(int x, int y) {return x y; } int main() {in…

图数据库Neo4j面试内容整理-Cypher 查询优化

Cypher 查询优化 是在 Neo4j 中提高查询性能的关键部分。Cypher 是 Neo4j 的查询语言,允许我们通过图的结构进行高效的数据检索。然而,随着数据量的增大和查询复杂度的提高,查询性能可能会变差。为了优化 Cypher 查询,我们可以使用多种策略,包括合理设计查询、利用索引和约…

二氧化钛的制备:高科技背后的简单原理 京煌科技

二氧化钛是什么&#xff1f; 二氧化钛&#xff08;TiO₂&#xff09;是一种广泛应用的白色无机化合物&#xff0c;具有高折射率、强遮盖力和优异的化学稳定性。它不仅是涂料、塑料、纸张等行业的重要原料&#xff0c;还在化妆品、食品、医药等领域发挥着重要作用。本文将深入探…