藍橋杯 基礎訓練 Sine之舞

2022-09-17 18:30:16 字數 972 閱讀 8956

基礎練習 sine之舞  

時間限制:1.0s   記憶體限制:512.0mb

問題描述

最近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

題解:這道題就是找到an和sn的遞迴方程就ok了,也可以理解為找規律。

首先分析an的表示式,容易知道最裡面的括號就是退出條件,當an的遞迴函式執行n次之後,返回sin(n);否則返回 sin(k+an(n-1)),k的值為 an遞迴函式的執行次數。設計函式的時候可以把k當引數傳進去,計算執行次數。

具體**見**塊。

再分析sn的表示式,當函式執行n次的時候返回 a1+n ,執行n次之前返回  sn(n-1)an+k,k的值為函式執行次數。設計函式的時候把k作為引數傳進函式。

這樣an和sn的遞迴函式都有了,就可以寫**了

#include #include #include using namespace std;

string itoa(int k) //整形轉字串

return res;

}string an(int n,int k) //k這個引數用來計算執行次數,從1開始

else

藍橋杯 基礎訓練 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想讓奶...

藍橋杯 Sine之舞

描述 分析 遞迴問題。先遞迴求得a na n an 再根據a na n an 求出s ns n sn 寫這題花了40分鐘,看來還是功力太差 求後面的a na n an 時會重複求a1 an 1 a a a1 an 1 的步驟,顯然會浪費很多時間,如果用乙個字串陣列記錄下來會很好,然而即使沒加入記錄的...

(藍橋杯)Sine之舞

問題描述 最近fj為他的奶牛們開設了數學分析課,fj知道若要學好這門課,必須有乙個好的三角函式基本功。所以他準備和奶牛們做乙個 sine之舞 的遊戲,寓教於樂,提高奶牛們的計算能力。不妨設an sin 1 sin 2 sin 3 sin 4 sin n sn a1 n a2 n 1 a3 2 an ...