【C语言蓝桥杯每日一题】—— 数列求值

简介: 哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【C语言蓝桥杯每日一题】—— 数列求值~ 都是精华内容,可不要错过哟!!!😍😍😍

微信图片_20230427214238.gif

😎博客昵称:博客小梦

😊最喜欢的座右铭:全神贯注的上吧!!!

😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘


微信图片_20230427160707.gif


前言🙌


   哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【C语言蓝桥杯每日一题】—— 数列求值~ 都是精华内容,可不要错过哟!!!😍😍😍


数列求值🙌


微信图片_20230428181255.png


解题思路分析:😍


  • 1.这是一道斐波那切数列题目的变形题目。我们知道,斐波那契数列如果用递归来写,递归层次是很深的,效率很低。这道题也是如此。因此,我们用非递归的方法求出第20190324的最后四位数。
  • 2.求解的方法和斐波那切数列一样。这里只是多定义一个变量,一共四个变量。让d 保存第i项的结果,然后每次让a,b,c相当于向后移位(将b赋值给a,将c赋值给b,将d赋值给c)。
  • 3.如果对上述讲解还是不够理解的,可以看一下我之前写的有关函数递归的博客:你是真的“C”——详解函数递归+求解青蛙跳台阶问题,然后对于这道题会有更好的理解。


非递归版解题代码:😍


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
  int a = 1;
  int b = 1;
  int c = 1;
  int d = 0;
  int i = 0;
  for (i = 4; i <= 20190324;i++)
  {
    d = (a+b+c) % 10000;
    a = b;
    b = c;
    c = d;
  }
  printf("%d",d);
  return 0;
}


程序输出结果验证: 😊


微信图片_20230428181302.png


递归版解题代码:😍


这里只是提供这个方法给大家,但是由于运行时导致栈溢出,从而不能得到答案,但是如果栈空间足够的话,是可以得到正确答案的。

#include <stdio.h>
#include <stdlib.h>
int fib(int n)
{
  if(n <= 3)
  return 1;
  else
  return (fib(n - 1)+fib(n - 2)+fib(n - 3)) % 10000;
}
int main(int argc, char *argv[])
{
  int n = 20190324;
  int num = fib(n);
  printf("%d",num);
  return 0;
}


总结撒花💞


   本篇文章旨在分享【C语言蓝桥杯每日一题】—— 数列求值。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘

相关文章
|
存储 Unix 编译器
初始C语言(6)——详细讲解表达式求值以及其易错点
初始C语言(6)——详细讲解表达式求值以及其易错点
199 0
|
7月前
|
C语言
c语言表达式求值--整型提升
c语言表达式求值--整型提升
|
2月前
|
人工智能 算法 测试技术
2023年第15届蓝桥杯模拟赛第二期(c语言)
2023年第15届蓝桥杯模拟赛第二期(c语言)
136 0
|
6月前
|
存储 算法 前端开发
2019蓝桥杯大赛省赛Java大学B组 数列求值
2019蓝桥杯大赛省赛Java大学B组 数列求值
22 0
|
6月前
|
Java
P9242 [蓝桥杯 2023 省 B] 接龙数列JAVA,边权为1的最短路问题,洛谷P9242 [蓝桥杯 2023 省 B] 接龙数列​编辑力扣1926.迷宫离入口最近的出口力扣433.
P9242 [蓝桥杯 2023 省 B] 接龙数列JAVA,边权为1的最短路问题,洛谷P9242 [蓝桥杯 2023 省 B] 接龙数列​编辑力扣1926.迷宫离入口最近的出口力扣433.
|
7月前
|
C语言
斐波那契数列(C语言)
斐波那契数列(C语言)
斐波那契数列(C语言)
|
7月前
|
C语言
每天一道C语言编程(3):有规律的数列输出
每天一道C语言编程(3):有规律的数列输出
74 0
|
存储 C语言 C++
C语言---数据结构实验---数制转换---表达式求值---回文判断---二叉树创建遍历
C语言---数据结构实验---数制转换---表达式求值---回文判断---二叉树创建遍历
|
7月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 Fibonacci数列
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 Fibonacci数列
41 0
|
7月前
|
存储 C语言
C语言栈的表达式求值讲解
C语言栈的表达式求值讲解
109 0