蓝桥杯-Sine之舞-java
蓝桥杯-Sine之舞-java
题目
问题描述最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。不妨设An=sin(1–sin(2+sin(3–sin(4+...sin(n))...)Sn=(...(A1+n)A2+n-1)A3+...+2)An+1FJ想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。
输入格式仅有一个数:N<201。
输出格式请输出相应的表达式Sn,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
((sin(1)+3)sin(1–sin(2))+2)sin(1–sin(2+sin(3)))+1
思路分析
这道题不难,但是有点绕,需要静下心来梳理一下。这个题需要两层递归来做。
首先分析一下外层的Sn,需要有大到小递归,也就是n,n-1,n-2……1,以index记录当前递归的位置,那么式子是"("+printfSN(n,index-1)+")"+printfAn(index,1,"")+"+"+(n - index + 1)
对于内层式子,An,需要由小到大递归,也就是1,2,3……n,以index记录递归的位置,以str记录已经拿到的字符串,那么公式就是str+"sin("+index+operation+printfAn(n, index + 1, str)+")";
代码
import java.util.Scanner;/*** @author zjg* <p> 2019/3/11 11:23 </p>*/
public class Sine之舞 {public static void main(String[] args) {Scanner sca = new Scanner(System.in);int n = sca.nextInt();System.out.println(printfSN(n, n));}private static String printfSN(int n, int index) {if (index == 1) {return printfAn(1, 1, "")+"+"+n;}return "("+printfSN(n,index-1)+")"+printfAn(index,1,"")+"+"+(n - index + 1);}private static String printfAn (int n, int index, String str) {if (n == index) {return "sin("+index+")";}String operation = "-";if (index % 2 == 0) {operation = "+";}return str+"sin("+index+operation+printfAn(n, index + 1, str)+")";}}
蓝桥杯-Sine之舞-java相关推荐
- java 蓝桥杯 Sine之舞
问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功.所以他准备和奶牛们做一个"Sine之舞"的游戏,寓教于乐,提高奶牛们的计算能力 ...
- 蓝桥杯 Sine之舞
题目: 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功.所以他准备和奶牛们做一个"Sine之舞"的游戏,寓教于乐,提高奶牛们的计算能力. ...
- 2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数
2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数 在线评测 Ideas 对于一个纯循环小数,假设循环节为l,则小数为0.llll-,转换为分数就是 l / (10 ** n ...
- 2013蓝桥杯java试题_蓝桥杯2013决赛java本科b组试题.doc
蓝桥杯2013决赛java本科b组试题.doc 试题一:公式求值问题描述输入n,m,k,输出下面公式的值.其中C_n^m是组合数,表示在n个人的集合中选出m个人组成一个集合的方案数.组合数的计算公式如 ...
- java迷宫类编程题_第十届蓝桥杯省赛java类B组 试题 E:迷宫 (动态规划之回溯法)...
问题描述 试题 E: 迷宫 [问题描述] 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方. 010000 000100 001001 110000 迷宫的入口为 ...
- 第十二届蓝桥杯省赛JAVA B组杨辉三角形个人题解
第十二届蓝桥杯省赛JAVA B组杨辉三角形个人题解(非满分) import java.util.Scanner; public class Main {public static void main( ...
- 蓝桥杯 拿金币 java实现
蓝桥杯 拿金币 java实现(通俗易懂) 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币.你站在最左 ...
- 蓝桥杯软件类Java语言IDE(Eclipse)安装
蓝桥杯软件类Java语言IDE(Eclipse)安装以及个性化设置 平时都在用idea搞工程类项目,正好报了下学期的蓝桥杯算法比赛,看到官网要求用eclipse编码,之前也参加过ccf-csp的比赛, ...
- 2021第十二届蓝桥杯省赛JAVA B组 题目+答案(复现赛)
2021第十二届蓝桥杯省赛JAVA B组 题目+答案(复现赛) A:ASC B:卡片 C:直线 D:货物摆放 E:路径 Floyed Dijkstra F:时间显示 G:最少砝码 H:杨辉三角形 I: ...
最新文章
- 第1章 信息检索基础
- 016 在大数据中,SSH无密钥登录
- php中include和require,在PHP中include和require到底有什么区别呢?
- 一个优秀的程序员应该如何提高工作效率?
- [DC]学习design compiler
- pythongui界面实例_wxPython:python首选的GUI库实例分享(5)
- c 语言重载参数类型不同重载和,C/C++函数重载与缺省参数
- 华为USG6000v防火墙双机热备综合实验
- ZEMAX | 如何倾斜和偏心序列光学元件
- matlab各相关系数的计算,matlab 相关系数的计算
- 搭建一个基于 Vue + Vant 的移动端项目模板
- php验证码手册,验证码 - ThinkPHP 5.1 完全开发手册
- 好玩的读心术猜数字游戏
- Mac新手使用技巧——Mac如何强制关机
- 07深圳浩项隔音窗,隔音知识与方法
- blender FLIP-Fluids 流体教程帮助系列02
- IOS开发入门之二——第一个App
- 数组名和指针的区别和联系、数组名取地址a
- 香港机房BGP线路有什么用
- SD卡扇区损坏引起了读文件失败