2021-3-14开学第二周 今天药忘吃喽~ 2021-05-16 20:37 445阅读 0赞 ### 要求使用递归完成所有习题 ### * A、递归求和 * B、倒序输出 * C、递归计数 * D、Kimi数列 * E、蜂房 * F、骨牌覆盖 # A、递归求和 # **题目描述** * 使用递归编写一个程序,求: S(n)=1-1/2+1/3-1/4+1/5-1/6+… **输入** * 多组数据输入,每组输入一个正整数n。 **输出** * 输出S(n)的计算结果(精确到小数点后六位)。 **样例输入 Copy** 1 **样例输出 Copy** 1.000000 **`java代码:`** import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Main juele = new Main(); int n; while(sc.hasNext()){ n = sc.nextInt(); java.text.DecimalFormat leile = new java.text.DecimalFormat("0.000000"); System.out.println(leile.format(juele.cbb(n))); } } public double cbb(int n){ if (n==0) return 0; if (n==1) return 1; if (n%2==0){ return cbb(n-1)-(double)1/n; }else return cbb(n-1)+(double)1/n ; } } **`C语言代码:`** #include <stdio.h> double cbb(); int main() { int n; while(scanf("%d",&n)!=EOF){ printf("%lf\n",(double)cbb(n)); } return 0; } double cbb(int n){ if(n==0) return 0; if(n==1) return 1; if(n%2==0) return cbb(n-1)-(double)1/n; else return cbb(n-1)+(double)1/n; } > 【这题其实不是很难,但是不知道为什么,我的另一个思路实现不了,可能就是技术不行吧!o(╥﹏╥)o > 我从周五早上开始搞这个题,来CSDN看人家的代码一遍一遍的改,改到了周六晚上,才做出来,最大的错误就是C语言代码里递归函数没有声明,(╯▔皿▔)╯】 # B、倒序输出 # **题目描述** * 使用递归编写一个程序,逆序输出一个非负整数。例如输入1234,输出4321(不含前导0)。 **输入** * 多组输入,每组输入一个非负整数。 **输出** * 逆序输出结果,每个结果占一行。 **样例输入 Copy** 12 1230 0 **样例输出 Copy** 21 321 0 **`C语言代码:`** #include <stdio.h> int cbb(); int main() { int n; while(scanf("%d",&n)!=EOF){ printf("%d\n",cbb(n)); } } int cbb(int n){ int bb = 0; while(n>0){ bb = bb*10+n%10; n = n/10; } return bb; } > 【这个题并没有改Java代码了 ,凑合着这样吧,泪流满面】 # C、递归计数 # **题目描述** * 编写一个递归程序,返回一个字符串中大写字母的数目。例如,输入“AbcD”,输出2。 **输入** * 多组输入,每组包括一个仅由大小写字母组成的字符串。 **输出** * 输出字符串中出现大写字母的数目。 **样例输入 Copy** AbcD **`样例输出 Copy`** 2 **`Java代码:`** import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); Main lanle = new Main(); while(sc.hasNext()){ String bb = sc.next(); char cc[] = bb.toCharArray(); System.out.println(lanle.cbb(cc)); } } public int cbb(char []cc){ int cb = 0; for(int i=0;i<cc.length;i++){ if(cc[i]>='A'&&cc[i]<='Z') cb++; } return cb; } } > 【说真的,我写Java完全是因为C语言学得时间太长了,不记得怎么获取字符串的单个字符了,而且CSDN的小伙伴们写的我有带你不太明白,好吧,我承认,我是个学渣, > /(ㄒoㄒ)/~~】 # D、Kimi数列 # **题目描述** * Kimi最近在研究一个数列: * F(0) = 7 * F(1) = 11 * F(n) = F(n-1) + F(n-2) (n≥2) * Kimi称之为Kimi数列。请你帮忙确认一下数列中第n个数是否是3的倍数。 **输入** * 输入包含多组数据。 * 每组数据包含一个整数n,(0≤n≤30)。 **输出** * 对应每一组输入有一行输出。 * 如果F(n)是3的倍数,则输出“Yes”;否则输出“No”。 **样例输入 Copy** 0 1 2 3 4 5 **样例输出 Copy** No No Yes No No No **C语言代码:** #include <stdio.h> int cbb(); int main() { int n; while(scanf("%d",&n)!=EOF){ if(0<=n&&n<=30){ if(cbb(n)%3==0){ printf("Yes\n"); } else printf("No\n"); } } } int cbb(int n){ if(n==0) return 7; if(n==1) return 11; if(n>=2) return cbb(n-1)+cbb(n-2); } > 【这个代码绝对是我自己写的,C语言当时正打开着,于是乎,写了C语言的,这个题目其实很好写,递归表达式都给你了,真的很方便了】 # E、蜂房 # **题目描述** * 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。 其中,蜂房的结构如下所示。 ![在这里插入图片描述][20210314220441390.png] **输入** * 多组数据输入,每组数据包含两个正整数a, b,且 a<b。 **输出** * 蜜蜂从蜂房a爬到蜂房b的可能路线数。 **样例输入 Copy** 1 2 3 4 **样例输出 Copy** 1 1 **`C语言代码:`** #include <stdio.h> int cbb(); int main() { int a,b; while(scanf("%d %d",&a,&b)!=EOF){ printf("%d\n",cbb(a,b)); } } int cbb(int a,int b){ if((b-a)==1) return 1; if((b-a)==2) return 2; if((b-a)>2) return cbb(a,b-1)+cbb(a,b-2); } > 【这个题目老师上课的时候讲过,发现其中规律,其实和斐波那契数列是一样的,那么从a到b的路径可以转换的哦,偷偷说一句,这个题我也是参考了别的小伙伴们的,我道歉,我错了,我真的下次不会我会回来的】 # F、骨牌覆盖 # **题目描述** * 用大小为1×2的骨牌铺满一个大小为2×n的长方形方格,编写一个程序,输入n,输出铺放方案总数。例如,输入n=3,即大小为2×3的方格,输出3。3种骨牌铺放方案如下图所示: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1ODIzMTE4_size_16_color_FFFFFF_t_70] **输入** * 多组测试用例,每一组是一个正整数。 **输出** * 每组输出占一行。 只需要输出铺放方案总数,不需要输出具体的铺放方案。 **样例输入 Copy** 3 **样例输出 Copy** 3 **`C语言代码:`** #include <stdio.h> int cbb(); int main() { int n; while(scanf("%d",&n)!=EOF){ printf("%d\n",cbb(n)); } } int cbb(int n){ if(n==1) return 1; if(n==2) return 2; if(n>2) return cbb(n-1)+cbb(n-2); } > 【这个和上面那个性质上是一样的,别问为什么,问就是来连递归表达式都一样的啊,不过也是推导出来的哦,但是老师上课也讲解了,规律还是那个,没错,就是 斐波那契数列哈哈哈哈哈哈】 > 干到了一点多才睡觉,完犊子了。。。 > ”橘子不是唯一的水果“ > ”但橙子是。“ > ——《如此可爱的我们》 [20210314220441390.png]: /images/20210516/06fa2e2459e04d1d8867016d2cee1130.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1ODIzMTE4_size_16_color_FFFFFF_t_70]: /images/20210516/08169fcd32804782b468745889850e21.png
相关 第二周 第二周总结 一、上周问题 二、本周问题 三、本周任务 一、上周问题 1. git不会二次上传 解决方案:[link][] 2. ゞ 浴缸里的玫瑰/ 2023年06月20日 06:21/ 0 赞/ 54 阅读
相关 第二周总结 第二周在学校待了几天,没什么事情可做,周二晚上收拾行李,然后周三回家了,到家之后洗了个澡,把衣服全部洗了,把穿脏的鞋子刷了一下,然后周四睡了一个懒觉,起床之后穿好衣服,吃了早点 - 日理万妓/ 2023年06月04日 11:58/ 0 赞/ 57 阅读
相关 第二周测验 选择 ![70][] ![70 1][] ![70 2][] ![70 3][] ![70 4][] ![70 5][] 男娘i/ 2022年05月20日 02:50/ 0 赞/ 308 阅读
相关 备考第二周总结 备考第二周总结 感受 备考真的是一个非常考验人的过程,我觉得能够始终如一的人,是不会被淘汰的。 完成的任务 张宇18讲看了3,4,5讲,其中第5讲都 我不是女神ヾ/ 2022年04月24日 03:28/ 0 赞/ 249 阅读
相关 第二周作业 3、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到/root/etcYYYY-mm-dd中 ![第二周作业][watermark_size 逃离我推掉我的手/ 2022年01月17日 02:19/ 0 赞/ 370 阅读
相关 第二周作业 2019年春季学期第二周作业 基础作业 请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值 拼搏现实的明天。/ 2022年01月12日 08:49/ 0 赞/ 284 阅读
相关 第二周作业 一、本周的作业 2019年春季学期第二周作业 基础作业 请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值 柔情只为你懂/ 2022年01月07日 04:57/ 0 赞/ 305 阅读
相关 第二周作业 基础作业 请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。 输入格式: 请建立 傷城~/ 2021年12月20日 11:34/ 0 赞/ 440 阅读
相关 2021-3-7开学第一周 这里写目录标题 时间转换(I) 数字求和 一二三 三家人 汽水瓶 数字整除 时间转换(I) 题目描述 输入一个正整数( 以你之姓@/ 2021年06月24日 13:58/ 0 赞/ 496 阅读
相关 2021-3-14开学第二周 要求使用递归完成所有习题 A、递归求和 B、倒序输出 C、递归计数 D、Kimi数列 E、蜂房 F、骨牌覆盖 A、递归求和 题 今天药忘吃喽~/ 2021年05月16日 20:37/ 0 赞/ 446 阅读
还没有评论,来说两句吧...