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

蓝桥杯第十届 数列求值

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

给定数列 1,1,1,3,5,9,17,⋯从第 4 项开始,每项都是前 3 项的和。

求第 20190324 项的最后 4 位数字。


  1. 模运算的分配律
    根据模运算性质,有:

    (a + b + c) mod m = [(a mod m) + (b mod m) + (c mod m)] mod m

    因此,无论先计算总和再取模,还是每一步都取模,最终结果一致。

  2. 防止溢出的必要性
    原始数列增长极快(类似三阶斐波那契),第20190324项的值远超long long的范围(约±9e18)。不取模会导致数值溢出,得到错误结果。

 

#include<iostream>
using namespace std;

int a[20200000]={0, 1, 1, 1}; //这里不能用long long,会超时 
int ans;

const int MOD = 10000;

int main()
{	
	for(int i=4; i<=20190324; ++i)
	{
		//每一步都取模防止溢出
		a[i] = (a[i-1] + a[i-2] + a[i-3]) % MOD;
	}
	
	ans = a[20190324]%MOD;
	
	cout<<ans;
	
	return 0;
}

http://www.kler.cn/a/601623.html

相关文章:

  • 【vue】warning:Avoid mutating a prop directly
  • AI Agent 是什么?从 Chatbot 到自动化 Agent(LangChain、AutoGPT、BabyAGI)
  • 如何创建一个socket服务器?
  • OpenAI流式解析
  • 计算机网络入门:物理层与数据链路层详解
  • HTTP 核心知识点整理
  • 云端陷阱:当免费午餐变成付费订阅,智能家居用户如何破局?
  • Idea中诡异的文件编码问题: 设置fileCodeing为UTF8但不生效
  • 【Linux-驱动开发-设备树 DTS】
  • 计算机组网实例
  • 什么是CAP理论
  • 【专业测评】STONE 80A-L 电调:轻量化革命下的工业级动力心脏 ——112g 机身承载 80A 持续输出,重新定义无人机动力系统标杆
  • windows剪切板的内容无法拷贝到虚拟机virtualbox里的Rocky Linux中 --Draft
  • effective Java 学习笔记(第二弹)
  • 【报错】 /root/anaconda3/conda.exe: cannot execute binary file: Exec format error
  • [leetcode]map的用法
  • 【HCIA-网工探长】04:ARP笔记
  • 电机控制常见面面试问题(十九)
  • Spring Boot 的自动装配
  • 3.25-1 postman执行+弱网测试