Sine之舞(遞迴/遞推)
阿新 • • 發佈:2020-07-14
Description
最近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的完整表示式,以方便奶牛們做題。
Input
僅有一個數:N<201。
Output
請輸出相應的表示式Sn,以一個換行符結束。輸出中不得含有多餘的空格或換行、回車符。
Sample Input 1
3
Sample Output 1
((sin(1)+3)sin(1–sin(2))+2)sin(1–sin(2+sin(3)))+1
Solution
//雖然是很簡單的題,但是找規律還是找了半天,參考部落格(https://blog.csdn.net/summer_dew/article/details/82082459?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase)
#include<stdio.h>
void A(int n) {
int i;
for (i = 1;i <= n;i++) {
printf("sin(%d", i);
if (i % 2 == 0 && i != n)
printf("+");
if (i % 2 != 0 && i != n)
printf("-");
}
for(i=0;i<n;i++)
printf(")");
}
void S(int n) {
int i,j;
j = n;
printf("(");
for (i = 1;i <= n;i++) {
A(i);
printf("+%d", j);
if (j != 1)
printf(")");
j--;
}
}
int main() {
int n;
scanf("%d", &n);
S(n);
return 0;
}