6-8 九连环数列(递归版)
在国外的一本数学书中收录了各种各样的数列,其中就有这样一个数列:
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 九连环数列(递归版)相关推荐
- PTA题库函数递归 菲波那切数列(递归版)
请编写递归函数,求菲波那切(Fibonacci)数列某一项的值. 0, 1, 1, 2, 3, 5, 8, 13 , 21, 34, 55, 89, 144, ... 函数原型 double Fib( ...
- 九连环的递归实现,以及数列通项
#include<stdio.h> /*九连环问题是否可以用递归解决创建数学模型:n=9,已知n环,解掉n环 ringDown(n)① 解掉前n-2个环② 用n-1环解掉n环③ 装上前n- ...
- C++ 斐波那契数列递归求解 进阶版
#include <iostream> #include <vector> using namespace std;int num = 0; vector<int> ...
- ZOJ1002 Fire Net(非递归版)
以前用递归的回溯搜索思路做过一次,参见ZOJ1002 Fire Net(递归版),今天想着用非递归的方法试试看,呵呵,比我想象中要难啊,主要还是堆栈里究竟放什么,这一点上思路一直没理清.因此用了整整一 ...
- Haskell 斐波那契 数列 递归实现
Haskell 斐波那契 数列 递归实现 haskell let fibonacci n = if n < 3 then 1 else fibonacci (n-2) + fibonacci(n ...
- 数据结构之栈与递归的实现及应用(斐波拉契数列递归解法和strlen递归解法)
栈与递归 程序中的"函数调用栈"是栈数据结构的一种应用. 函数调用栈一般是从高地址向低地址增长的,栈底为内存的高地址处,栈顶为内存的低地址处. 函数调用栈中存储的数据为活动记录.活 ...
- Python 数据结构与算法——选择排序(迭代版、递归版)
我们首先找到其中最大的元素,并将其放在 n<script id="MathJax-Element-11" type="math/tex">n< ...
- 【重点 递归版】剑指offer——面试题16:反转链表
剑指offer--面试题16:反转链表 牛客网上有<剑指offer>的题目训练https://www.nowcoder.com/activity/oj 一个有关此题图文并茂的博客:http ...
- c语言斐波那契数列递归数组,c语言斐波那契数列递归法
斐波那契数列递归 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为&quo ...
最新文章
- VC++ GetSafeHwnd()和GetSafeHandle()
- vrish 删除虚机_使用Kvm命令集管理虚拟机
- hashmap取值_一万六千字的HashMap深度剖析
- 更轻易地实现 Jwt Token
- laravel5.6 使用指定字段作为key_MyRocks TTL使用姿势及Bugfix
- autojs 按下状态_AutoJs4.1.0实战教程---最后惊喜的一篇
- Spring之WebSocket网页聊天以及服务器推送
- Oracle数据库迁移:异构传输表空间TTS HP-UX迁移至Redhat Linux 7.7
- SWIFT学习笔记01
- 前端人员必看css命名,前端css命名规范
- 大数据可视化实验六、七:大数据可视化工具—Processing(一)(二)
- 如何查看steam游戏销量_如何查看您在Steam游戏上花费的金钱和时间
- 基于FBX SDK的FBX模型解析与加载 -(一)
- 5月6阴阳师服务器维护,《阴阳师》手游5月6日维护更新公告
- What is pessimistic locking in Hibernate
- 编写函数(fun),通过函数调用,输入存款金额和存款年限,计算到期总金额和利息。
- 不要盲目跟风:中小企业运营自媒体需三思而后行
- 务实java基础之集合总结
- Cadence教程4——环形振荡器
- jquery-js 美化页面
热门文章
- #10001. 「一本通 1.1 例 2」种树
- 【IoT案例征集文章】60 万年薪招聘物联网工程师!此专业要火!
- 阻止事件冒泡的三种方法
- 3Dmax2020动画制作
- JSP中meta标签之详解
- 【Python+图片切割+图片合并】基于Python的图片批量切割与合并(保持原像素不变,不会出现像素大小不匹配、填充黑边的问题)
- TV盒子大图浏览优化
- 解决安装ubuntu系统时,出现机器以UEFI模式启动了安装器的问题
- c语言编程网页数据提取,怎么用c语言抓取网页中的数据
- 雅思7+、托福110+的英语大神,原来都偷偷关注了这几个视频号!