Algorithm19.1 递归
[TOC]
递归
主要题型:对于一个字串,然后子字串同样进行递归【带有优先级的计算式】
两种方案:
- 第一种,先输入进来,然后整体进行递归,递归的参数就是这个整体字串
- 第二种,边输入边递归,这样就可以利用一些getchar,char字符来进行输入的直接判断(例如如果字串一部分为ADD567,如果不知道长度的的话还有遍历判断,如果直接边输入边解析,那就可以直接利用cin来直接分割,cin»字串»数字,就自动分割了)
指令移动
https://www.luogu.com.cn/problem/P1322
#include <iostream>
using namespace std;
int solve() {
char c;
string tp;
int num, ans, d;
while (cin>>c) {
if (c == ']') break;
cin>>tp>>num;
if (c == 'R') {
d = getchar();
ans += num*solve();
d = getchar();
}
if (c == 'B') d = getchar(), ans -= num;
if (c == 'F') d = getchar(), ans += num;
if (d == int(']')) break;
}
return ans;
}
int main() {
printf("%d\n", solve());
return 0;
}