递归和自调用函数
文章平均质量分 52
NOI里关于递归和自调用函数的题目讲解
寒冬i
不知道干什么的
展开
-
NOI / 2.2基本算法之递归和自调用函数3089:爬楼梯
描述树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级也可以第一次走两级,第二次走一级,一共3种方法。输入输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 <= N <= 30输出不同的走法数,每一行输入对应一行输出代码如下:#include<bits/stdc++.h>//万能头文件using namespace std;int main()//主原创 2022-01-19 19:31:17 · 217 阅读 · 0 评论 -
NOI / 2.2基本算法之递归和自调用函数 2705:扩号匹配问题
描述在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注.输入输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过100注意:cin.getline(str,100)最多只能输入99个字符!输出对每组输出数据原创 2022-03-06 15:01:05 · 529 阅读 · 0 评论 -
NOI / 2.2基本算法之递归和自调用函数 1755:菲波那契数列
描述菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数是多少。输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 20)输出输出有n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数的大小代码如下:#include<bits/stdc++.h>//万能头文件using namespace s原创 2022-01-19 19:29:21 · 148 阅读 · 0 评论 -
NOI / 2.2基本算法之递归和自调用函数-6261:汉诺塔问题(详细讲解)
把A柱子上的圆盘借B柱子全部移动到C柱子上,并且移动的过程始终是小的圆盘在上,大的在下。约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。我们先来回顾一下递归的条件,一个是终止条件,一个是调用自己。我们先来看下递归的终止条件就是当n等于1的时候,也就是A柱子上只有一个圆盘的时候,我们直接把A柱子上的圆盘移动到C柱子上即可。原创 2022-08-24 16:02:48 · 323 阅读 · 1 评论 -
NOI / 2.2基本算法之递归和自调用函数-1696:波兰表达式(详细讲解)
波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的波兰表示法为+ 2 3。波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的波兰表示法为* + 2 3 4。所以我们在应该在一开始递归时,先输入一个字符串,如果是符号,就进行两次递归,并对其进行加减乘除的操作;如果是常量,就用atof()把字符串转换成一个小数类型的数,并返回。如果有不懂的的问题,可以留在评论区里,我会尽快回复的(✪ω✪)输出为一行,表达式的值。原创 2022-08-25 13:35:56 · 771 阅读 · 9 评论