蓝桥杯 基础练习 Sine之舞 【递归简单运用】
来源:互联网 发布:app打包网站源码 编辑:程序博客网 时间:2024/05/21 22:29
基础练习 Sine之舞
时间限制:1.0s 内存限制:512.0MB
提交此题 锦囊1 锦囊2
问题描述
最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。
不妨设
An=sin(1–sin(2+sin(3–sin(4+…sin(n))…)
Sn=(…(A1+n)A2+n-1)A3+…+2)An+1
FJ想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。
输入格式
仅有一个数:N<201。
输出格式
请输出相应的表达式Sn,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
((sin(1)+3)sin(1–sin(2))+2)sin(1–sin(2+sin(3)))+1
题意 : 已知:
给你一个n,让你求Sn
分析: 简单的递归,但是递归会超时哦,要记忆化一下,我这里直接先递推预处理下,然后跑下深搜即可
坑点: 由于这题的数据太水啦,完全可以水过去,但还是认真做吧
参考代码
#include<bits/stdc++.h>using namespace std;string pre[201];string a[201];int n;string get(int x) { string res; while (x) { res = (char)('0' + x % 10) + res; x /= 10; } return res;}void init() { for(int i = 1;i <= n;i++) { pre[i] = "sin(" + get(i) + ")"; } a[1] = pre[1]; for(int i = 2;i <= n;i++) { string temp = a[i-1].substr(0,a[i-1].size() - i + 1); if(i&1) { a[i] = temp + "+" + pre[i]; for(int j = 1;j < i;j++) a[i] += ")"; } else { a[i] = temp + "-" + pre[i]; for(int j = 1;j < i;j++) a[i] += ")"; } }}string dfs(int idx,int n) { if(n == 1) return a[1] + "+" + (char) ('0' + idx); return "(" + dfs(idx + 1,n-1) + ")" + a[n] + "+" + (char)('0' + idx);}int main(){ ios_base::sync_with_stdio(0); cin>>n; init(); cout<<dfs(1,n)<<endl; return 0;}
阅读全文
0 0
- 蓝桥杯 基础练习 Sine之舞 【递归简单运用】
- 蓝桥杯 基础练习 Sine之舞
- 蓝桥杯 基础练习 Sine之舞 暴力
- 蓝桥杯 基础练习 Sine之舞
- 基础练习 Sine之舞
- 基础练习 Sine之舞
- 基础练习 Sine之舞
- 基础练习 Sine之舞
- 基础练习 Sine之舞
- 基础练习 Sine之舞
- 基础练习 Sine之舞
- 基础练习 Sine之舞
- 基础练习 Sine之舞
- 基础练习 Sine之舞
- 基础练习 Sine之舞
- 蓝桥杯—— 基础练习之Sine之舞
- 蓝桥杯—— 基础练习之Sine之舞
- 蓝桥杯 BASIC-21 基础练习 Sine之舞
- oracle递归查询 start with connect by prior
- 每天一个linux命令(10):cat 命令
- 商品状态查询
- 使用apidoc 生成Restful web Api文档
- Kettle 学习
- 蓝桥杯 基础练习 Sine之舞 【递归简单运用】
- WatchConnectivity通信框架小结
- Glide实现圆角 圆形图片
- activity生命周期
- js如何只对引号外的逗号进行分割
- 编辑距离(LD)算法的python实现
- Android首次打开APP引导层
- 学习笔记-dubbo监控和注册中心
- Redis分布式锁