算法题——递归
逆波兰表达式
http://bailian.openjudge.cn/practice/2694/
逆波兰表达式的定义:
1) 一个数是一个逆波兰表达式,值为该数
2) "运算符 逆波兰表达式 逆波兰表达式" 是逆波兰表
达式 ,值为两个逆波兰表达式的值运算的结果
#include<iostream> #include<cstdlib> using namespace std; double exp() { char s[20]; //用来保存每个数值或者运算符 cin >> s; switch(s[0]) { case '*': return exp() * exp(); case '+': return exp() + exp(); case '-': return exp() - exp(); case '/': return exp() / exp(); default: return atof(s); } } int main(){ cout << exp() << endl; return 0; }
上台阶
#include<iostream> using namespace std; int Stairs(int n){ if (n < 0) { //台阶为负数的时候,不用走 return 0; } if (n == 0) { //只有没有台阶的时候,只有一种走法 return 1; } return Stairs(n-1) + Stairs(n-2); } int main(){ int n; while (cin >> n) { cout << Stairs(n) << endl; } return 0; }
例题3: 放苹果
http://poj.org/problem?id=1664
如需转载,请注明文章出处,谢谢!!!