sin之舞---蓝桥杯练习
问题描述
最近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的完整表达式,以方便奶牛们做题。
不妨设
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
分析:
sin( 1 )
sin( 1 -sin(2 ))
sin( 1 -sin(2 +sin(3 )))
sin( 1 -sin(2 +sin(3 -sin(4 ))))
sin( 1 -sin(2 +sin(3 -sin(4 +sin(5 )))))
sn( int num )
{
for()输出左边括号
for()
{
fun(i)
输出A(n)+num--)
}
}
A1 +1
( A1 +2) A2 +1
(( A1 +3) A2 +2) A3 +1
((( A1 +4) A2 +3) A3 +2) A4 +1
代码:
1 #include<stdio.h> 2 int main() 3 { 4 void fun(int num); 5 void sn(int n); 6 int n; 7 scanf("%d",&n); 8 sn(n); 9 return 0; 10 } 11 void sn(int n) 12 { 13 void fun(int); 14 int i; 15 for(i=1;i<n;i++) 16 printf("("); 17 i=1; 18 while(i<=n) 19 { 20 fun(i); 21 if(i==n) 22 printf("+1"); 23 else 24 printf("+%d)",n-i+1); 25 i++; 26 } 27 } 28 void fun(int num) 29 { 30 int i; 31 for(i=1;i<=num;i++) 32 { 33 if(i==1) 34 printf("sin(%d",i); 35 else if(i%2==0) 36 printf("-sin(%d",i); 37 else printf("+sin(%d",i); 38 } 39 for(i=1;i<=num;i++) 40 printf(")"); 41 }