算法题——递归
逆波兰表达式
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
如需转载,请注明文章出处,谢谢!!!
浙公网安备 33010602011771号