题解 P1322 【logo语言】
摆明的递归题目,先来看看解题思路
首先while读入char类型的ch
如果是]那么就break
如果是T就读入空格然后再构造char类型的字符和string的字符串,每次读入一直到[停止读入,并且随时将字符串加上这个字符,再递归结果乘以这个字符串转成数字的结果
另外的前进后退就简单了
代码,20ms,616.00KB,代码长度945B,C++11 O2
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
int cl()
{
int ans = 0;
char s;
while(scanf("%c", &s) != EOF)
{
if(s == ']')
{
break;
}
else if(s == 'T')
{
scanf(" ");
char a;
string s;
while(scanf("%c", &a))
{
if(a == '[')
{
break;
}
s += a;
}
ans += stoi(s) * cl();
}
else if(s == 'D')
{
scanf(" ");
int a;
cin >> a;
ans += a;
}
else if(s == 'K')
{
scanf(" ");
int x;
cin >> x;
ans -= x;
}
}
return ans;
}
int main()
{
cout << abs(cl()) << endl;
return 0;
}
分类:
题解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现