算法-数列求值

硅谷探秘者 8654 0 0

问题描述

image.png


思路:

      斐波那契数列的变体

        考虑如果把20190324项的每一项的值都算出来的话,那么值的范围就会超出基本数据类型能够表示的范围,又考虑到题目是求最后四位数,而加法计算时前一位不会影响后一位的计算结果,例如 无论是15+18或者5+8个位的结果都是3并不受十位的影响,所以每一项只需要得出最后四位的结果即可。


实现:

public class TestMain1 {
	public static void main(String[] args) {
		int a = 1, b = 1, c = 1;
	    int s = 20190324;
	    for (int i = 4; i <= s; ++i) {
	        int t = (a + b + c) % 10000;
	        c = b; 
	        b = a;
	        a = t;
	    }
	    System.out.println(a);
	}
}

答案:

4659

猜你喜欢
数据结构与算法 11430 问题描述给定一个int类型一维组a[],和一个int类型的b。编写一个程序,判断组中有没有两个(a[i],a[j])的和等于b,如果存在,返回两个在a组中的下表
数据结构与算法 4699 试题描述:思路:用组表示完全二叉树,用先序遍历的方式遍历每一层的节点,用一个组储存每一层的和,因为据规模小于100000所以用一个容量为17的组即可。计完每一层的和,再比较层最小之和最大
java基础 1459 已知一个的补码,:1.如果是负的话,先将该补码部分按位取反再加1,出这个二进制代表的十进制,然后加个负号就行了,2.如果是正的话,这个二进制代表的十进制就是真
weblog 3154 类型的传执行时会为实参创建一个副本,方内改变形参的时不会改变实参的。引用类型的传会为实参创建一个副本引用,形参和实参指向的是同一个对象的内存地址,当形参引用的内存地址改变
数据结构与算法 3906 递归实现全排c++描述#includeiostreamusingnamespacestd;//交换voidexchange(int*a,inti,intj){if(i==j){return
数据结构与算法 496 prim(普里姆)出。对于任何一个据结构或,理解和实现只是一个方面,更重要的是要明白它的应用范围或应用场景,最小生成树的应用非常广泛,例如:假设要在n个城市之间建立通信联络网,则连接n个
数据结构与算法 3732 分析题意每一周的七个会产生一个中位,一共七周即一共产生7个中位。而题目要的是这七个中位组成的的的中位的最大。最初想的是每次从剩下些中取4个最大的,3个最小的,保证这7个中位都是
数据结构与算法 497 原文链接:https://www.zhihu.com/question/23148377?sort=created基础 时间复杂度 空间复杂度基础据结构 线性表 表(必学) 链表(必学
归档
2018年11月  12 2018年12月  33 2019年01月  28 2019年02月  28 2019年03月  32 2019年04月  27 2019年05月  33 2019年06月  6 2019年07月  12 2019年08月  12 2019年09月  21 2019年10月  8 2019年11月  15 2019年12月  25 2020年01月  9 2020年02月  5 2020年03月  16 2020年04月  4 2020年06月  1 2020年07月  7 2020年08月  13 2020年09月  9 2020年10月  5 2020年12月  3 2021年01月  1 2021年02月  5 2021年03月  7
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo
目录