Java版Sine之舞<經典遞迴>
阿新 • • 發佈:2020-12-29
最近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+")");
}
}