首页 > 代码库 > sin之舞---蓝桥杯练习

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的完整表达式,以方便奶牛们做题。
输入格式
  仅有一个数: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  }

 

sin之舞---蓝桥杯练习