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

2019蓝桥杯真题数列求值(填空题) C语言/C++

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

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

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

运行限制
最大运行时间:1s
最大运行内存: 128M

最终的答案是4659;
所需变量

int a[4];//为了节省空间,我们可以用四个空间大小的数组来代替不断循环

int n;//代表要求的是第多少项

int temp;//用来确定到底是数组中的哪一项

int i;//循环变量

首先我们可以设计一个循环的数组,这样节省空间,比如对于第四项是由前三项加起来,那么我们就可以把a[0] + a[1] + a[2]加起来赋值给a[3],对于第五项由于只需要前三项,那么我们可不可以将第五项赋值给a[0],因为我们只需要“前三项”,a[1] + a[2] + a[3],,对于第六项那么我们就可以将 a[2] + a[3]+a[0]然后赋值给a[1],这样我们就做到节省空间的做法了!(该方法本人新思路,大家可以看看)

for(i = 3;i<n;i++){temp = i%4;a[temp] = (a[0] + a[1] + a[2] + a[3] - a[temp])%10000;}

思路:因为这个题目是只需要最后的四位数,然后我们每次发现从第五位开始,上面位的我们都不需要,所以看在字符会越界的情况下,我们可以每次加起来就求余一次,把从第五位开始,上面的位数都去掉!
该方法本人认为比较优,如果有更好的想法,欢迎q我!

#include<stdio.h>
int a[4] = {1,1,1,0};
int n,temp,i;
int main(){scanf("%d",&n);for(i = 3;i<n;i++){temp = i%4;a[temp] = (a[0] + a[1] + a[2] + a[3] - a[temp])%10000;}printf("%d",a[temp]);return 0;
}

在这里插入图片描述

http://www.lryc.cn/news/9884.html

相关文章:

  • spring中@Autowire和@Resource的区别在哪里?
  • 算法训练营DAY54|583. 两个字符串的删除操作、72. 编辑距离
  • 【Ctfshow_Web】信息收集和爆破
  • 基于机器学习的推荐算法研究与实现
  • (二十四)ATP应用测试平台——springboot集成fastdfs上传与下载功能
  • linux好用命令+vs快捷键
  • Git 构建分布式版本控制系统
  • Day891.一主多从的切换正确性 -MySQL实战
  • 【论文笔记】图像修复Learning Joint Spatial-Temporal Transformations for Video Inpainting
  • 代码随想录算法训练营第二天 | 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II、总结
  • Python pickle模块:实现Python对象的持久化存储
  • 【C++】C/C++内存管理
  • 【测试】自动化测试02
  • Python空间分析| 02 利用Python计算空间局部自相关(LISA)
  • idea快捷编码:生成for循环、主函数、判空非空、生成单例方法、输出;自定义快捷表达式
  • 【Spring】@Value注入配置文件 application.yml 中的值失败怎么办
  • CleanMyMac清理工具软件功能优势介绍
  • 【面试题】对JS中的事件冒泡、事件捕获、事件委托的理解
  • SAP 理解合并会计报表
  • Ubuntu 命令常用命令——定时启动程序
  • 笔试题(十三):走迷宫
  • Gradle相关的知识学习
  • SpringMVC的工作原理
  • 问卷数据分析流程
  • 【观察】Solidigm P44 Pro SSD评测:原厂品质+软硬兼施=性能怪兽
  • String对象的创建和比较
  • 09 OpenCV图形检测
  • 解密Teradata与中国市场“分手”背后的原因!国产数据库能填补空白吗?
  • Bernstein-Vazirani算法
  • 华为OD机试 - 相对开音节 | 备考思路,刷题要点,答疑 【新解法】