在国外的一本数学书中收录了各种各样的数列,其中就有这样一个数列:

1, 2, 5, 10, 21, 42, 85, 170, 341, …

起先大家都感到莫名其妙,不知道它有什么用。它既非等差数列,又非等比数列,也不是一些非常有名的数列。后经人指点,大家才恍然大悟,原来它是九连环数列。

第 1 项为 1,表明解开 1 个环需 1 步;第 2 项为 2,表明解开 2 个环需要 2 步;…,以此类推,第 9 项为 341,表明解开 9 个环需要 341 步,…,以此类推。请编写递归函数,求九连环数列中任一项的值。

函数原型

double NumRing(int index);

说明:参数 index 为索引号。若 index 大于 0,则函数值为九连环数列第 index 项的值,否则为 0。

裁判程序

#include <stdio.h>int IsOdd(int x);
int IsEven(int x);
double NumRing(int index);int main()
{int i;scanf("%d", &i);printf("%g\n", NumRing(i));return 0;
}/* 你提交的代码将被嵌在这里 */

测试数据

输入样例 输出样例
-8 0
0 0
1 1
2 2
9 341
20 699050
45 2.34562e+013

提示:可调用前面作业中的用以判断奇数和偶数的函数。

要求:不得使用循环语句。不得调用 pow、exp 等数学函数。

double NumRing(int index)
{double t;int n = 0;if (index > 0) {if (index % 2 != 0)t = 1;elset = 0;if (index == 1)return 1;else if (index == 2)return 2;elsereturn 2 * NumRing(index - 1) + t;}elsereturn n;
}


6-8 九连环数列(递归版)相关推荐

  1. PTA题库函数递归 菲波那切数列(递归版)

    请编写递归函数,求菲波那切(Fibonacci)数列某一项的值. 0, 1, 1, 2, 3, 5, 8, 13 , 21, 34, 55, 89, 144, ... 函数原型 double Fib( ...

  2. 九连环的递归实现,以及数列通项

    #include<stdio.h> /*九连环问题是否可以用递归解决创建数学模型:n=9,已知n环,解掉n环 ringDown(n)① 解掉前n-2个环② 用n-1环解掉n环③ 装上前n- ...

  3. C++ 斐波那契数列递归求解 进阶版

    #include <iostream> #include <vector> using namespace std;int num = 0; vector<int> ...

  4. ZOJ1002 Fire Net(非递归版)

    以前用递归的回溯搜索思路做过一次,参见ZOJ1002 Fire Net(递归版),今天想着用非递归的方法试试看,呵呵,比我想象中要难啊,主要还是堆栈里究竟放什么,这一点上思路一直没理清.因此用了整整一 ...

  5. Haskell 斐波那契 数列 递归实现

    Haskell 斐波那契 数列 递归实现 haskell let fibonacci n = if n < 3 then 1 else fibonacci (n-2) + fibonacci(n ...

  6. 数据结构之栈与递归的实现及应用(斐波拉契数列递归解法和strlen递归解法)

    栈与递归 程序中的"函数调用栈"是栈数据结构的一种应用. 函数调用栈一般是从高地址向低地址增长的,栈底为内存的高地址处,栈顶为内存的低地址处. 函数调用栈中存储的数据为活动记录.活 ...

  7. Python 数据结构与算法——选择排序(迭代版、递归版)

    我们首先找到其中最大的元素,并将其放在 n<script id="MathJax-Element-11" type="math/tex">n< ...

  8. 【重点 递归版】剑指offer——面试题16:反转链表

    剑指offer--面试题16:反转链表 牛客网上有<剑指offer>的题目训练https://www.nowcoder.com/activity/oj 一个有关此题图文并茂的博客:http ...

  9. c语言斐波那契数列递归数组,c语言斐波那契数列递归法

    斐波那契数列递归 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为&quo ...

最新文章

  1. VC++ GetSafeHwnd()和GetSafeHandle()
  2. vrish 删除虚机_使用Kvm命令集管理虚拟机
  3. hashmap取值_一万六千字的HashMap深度剖析
  4. 更轻易地实现 Jwt Token
  5. laravel5.6 使用指定字段作为key_MyRocks TTL使用姿势及Bugfix
  6. autojs 按下状态_AutoJs4.1.0实战教程---最后惊喜的一篇
  7. Spring之WebSocket网页聊天以及服务器推送
  8. Oracle数据库迁移:异构传输表空间TTS HP-UX迁移至Redhat Linux 7.7
  9. SWIFT学习笔记01
  10. 前端人员必看css命名,前端css命名规范
  11. 大数据可视化实验六、七:大数据可视化工具—Processing(一)(二)
  12. 如何查看steam游戏销量_如何查看您在Steam游戏上花费的金钱和时间
  13. 基于FBX SDK的FBX模型解析与加载 -(一)
  14. 5月6阴阳师服务器维护,《阴阳师》手游5月6日维护更新公告
  15. What is pessimistic locking in Hibernate
  16. 编写函数(fun),通过函数调用,输入存款金额和存款年限,计算到期总金额和利息。
  17. 不要盲目跟风:中小企业运营自媒体需三思而后行
  18. 务实java基础之集合总结
  19. Cadence教程4——环形振荡器
  20. jquery-js 美化页面

热门文章

  1. #10001. 「一本通 1.1 例 2」种树
  2. 【IoT案例征集文章】60 万年薪招聘物联网工程师!此专业要火!
  3. 阻止事件冒泡的三种方法
  4. 3Dmax2020动画制作
  5. JSP中meta标签之详解
  6. 【Python+图片切割+图片合并】基于Python的图片批量切割与合并(保持原像素不变,不会出现像素大小不匹配、填充黑边的问题)
  7. TV盒子大图浏览优化
  8. 解决安装ubuntu系统时,出现机器以UEFI模式启动了安装器的问题
  9. c语言编程网页数据提取,怎么用c语言抓取网页中的数据
  10. 雅思7+、托福110+的英语大神,原来都偷偷关注了这几个视频号!