首页 > 其他 > 详细

[题记]Sine之舞-蓝桥杯

时间:2020-04-04 17:03:32      阅读:65      评论:0      收藏:0      [点我收藏+]

题目: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想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。

 

输入格式:

一个N<201

 

输出格式:

请输出相应的表达式Sn,以一个换行符结束。输出中不得含有多余的空格或换行、回车符

 

样例:

3

((sin(1)+3)sin(1–sin(2))+2)sin(1–sin(2+sin(3)))+1


 

我们根据题意来分别构建An和Sn的构造函数即可。

An:

  1. 输出一个 “ sin( ”
  2. 输出一个数字 i
  3. 根据i的奇偶来输出 ‘+’ 或 ‘-’
  4. 输出一个 ‘ ) ’

Sn:

  1. 输出一个 ‘ ( ’
  2. 输出An
  3. 输出一个字符 ‘)’ 和数字 i
  4. 根据 i 来判断是不是到最后从而停止输出字符 ‘)’

最后输出一个回车符即可。

 

代码(c++):

#include <iostream>
using namespace std;

void An( int n , int i) {
    if( n == 0 ) return ;
    //输出字符串和数字 i 
    cout << "sin(" << i;
    //根据 i 的奇偶输出 + - 
    if( n != 1 ) {
        if( i % 2 == 0 ) cout << +;
        else cout << -;
    }
    An( n - 1, i + 1 );
    //输出字符 
    cout << ); 
}

void Sn( int n, int i ) {
    if( n == 0 ) return ;
    //输出字符 
    if( n != 1 ) cout << (;
    
    Sn( n - 1, i + 1 );
    //输出An和+和数字i 
    An( n, 1 );
    cout << + << i;
    //根据i判断是够输出字符 ( 
    if( i != 1 ) cout << );
}

int main() {
    int n;
    cin >> n;
    Sn( n, 1 );
    cout << \n;
    return 0;
} 

2020-04-04-16:22:44

 

 

 

 

[题记]Sine之舞-蓝桥杯

原文:https://www.cnblogs.com/Sxccz/p/12632335.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!