递归递推测试题分析讲解.pptVIP

  • 13
  • 0
  • 约7.06千字
  • 约 16页
  • 2017-02-15 发布于河南
  • 举报
递归递推测试题分析讲解

逆波兰表达式 问题描述: 逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2+3的逆波兰表示法为+23。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2+3)*4的逆波兰表示法为*+234。本题求解逆波兰表达式的值,其中运算符包括+- * / 四个。 输入数据: 输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。 输出要求: 输出为一行,表达式的值 输入样例: * + 11.0 12.0 + 24.0 35.0 输出样例: 1357.000000 分析 解题思路: 这个问题看上去有些复杂,如果只是简单地模拟计算步骤不太容易想清楚,但是如果用递归的思想就非常容易想清楚,让我们根据逆波兰表达式的定义进行递归求解。在这个递归函数中,针对当前的输入,有五种情况: 1、输入是常数,则表达式的值就是这个常数 2、输入的是‘ + ’,则表达式的值是再继续读入两个表达式并计算出它们的值 3、输入的是‘ - ’; 4、输入的是‘ * ’; 5、输入的是‘ / ’; 后面几种情况与2相同,只是计算从‘ + ’变成‘ - ’ ‘ * ’ ‘ / ’。 #include stdio.h #includemath.h double exp(){ char a[1

文档评论(0)

1亿VIP精品文档

相关文档