当前位置: 首页 > 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

相关文章:

  • 17028djwcb
  • 探秘基带算法:从原理到5G时代的通信变革【六】CRC 校验
  • Spark(6)vm与centos虚拟机
  • DeepSeek API使用及私有化部署
  • 【向量数据库Weaviate】与ChromaDB的差异、优劣
  • week 2 - Branching - Arrays
  • JVM内存管理
  • 线程池的工作流程
  • VMware如何配置IP网络
  • java数据结构_Map和Set(一文理解哈希表)_9.3
  • 探索Elasticsearch:文档的CRUD
  • DeepSeek-OpenSourceWeek-第六天-Inference System Overview
  • Langchain解锁LLM大语言模型的结构化输出能力(多种实现方案)
  • Qt基础入门-详解
  • Linux配置虚拟机
  • AMD RDNA3 GPU架构解析
  • Oracle数据库安全防护体系构建与核心技术解析
  • Excel的行高、列宽单位不统一?还是LaTeX靠谱
  • 厦门大学DeepSeek系列报告2份,《大模型概念、技术与应用实践》、《DeepSeek大模型赋能高校教学和科研》
  • 【软件安装】WebStorm现在免费,但是是非商业版本
  • 准85后青海海北州副州长、州公安局局长李贤荣挂职临沂市副市长
  • 徐丹任武汉大学药学院院长:研究领域在国际上处领跑地位
  • 赵厚均评《唐诗与唐代园林景观的审美建构研究》|林泉恣探历,风景暂徘徊
  • “五一”假期首日迎出游高峰:火车站人流“堪比春运”,热门景区门票预订量同比增三成
  • 陈颖已任上海黄浦区委常委、统战部部长
  • 2025五一档首日电影票房破亿