問題描述
最近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)))+1java
import java.util.*; public class Main { public static void main(String args[]) { Scanner cn=new Scanner(System.in); int t=cn.nextInt(); String str2=String.valueOf(S(t)); System.out.println(str2); //其實不將StringBuffer類型轉化成String類型輸出也能夠 } public static StringBuffer S(int t) //產生Sn的函數 { String str=""; for(int i=1;i<t;i++) str=str+"("; for(int i=1,j=t;i<=t;i++,j--) { str=str+A(i)+"+"+j+")"; //期間調用產生An 的函數 } StringBuffer str2=new StringBuffer(str); str2.deleteCharAt(str2.length()-1); //由於多產生了一個 「)」 return str2; } public static StringBuffer A(int i) { String str=""; for(int t=1;t<=i;t++) { if(t%2!=0) str=str+"+"+"sin("+t; //這樣會使第一項也會有一個「+」 因此後續得去掉 else str=str+"-"+"sin("+t; } for(int t=1;t<=i;t++) str=str+")"; StringBuffer str2=new StringBuffer(str); //由於多產生了一個「+」號 str2.deleteCharAt(0); return str2; } }