Java版Sine之舞<经典递归>
作者:互联网
最近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的完整表达式,以方便奶牛们做题。
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
System.out.println(s(1,x));
}
public static String f(int begin,int end){
if(begin==end)
return ("("+begin+")");
else
if(begin%2==1)
return ("("+begin+"-sin"+f(begin+1,end)+")");
else
return ("("+begin+"+sin"+f(begin+1,end)+")");
}
public static String s(int begin,int end){
if(begin==end&&end!=1)
return ("(sin"+f(1,1)+"+"+begin+")");
if(end==1)
return ("sin"+f(1,1)+"+"+begin);
if(begin==1){
return (s(begin+1,end)+"sin"+f(1,end-begin+1)+"+"+begin);
}
else
return ("("+s(begin+1,end)+"sin"+f(1,end-begin+1)+"+"+begin+")");
}
}
标签:begin,end,int,sin,return,Java,FJ,Sine,之舞 来源: https://blog.csdn.net/weixin_45665566/article/details/111847865