zoukankan      html  css  js  c++  java
  • 试题 基础练习 Sine之舞

    一.题目

    题目链接
      http://lx.lanqiao.cn/problem.page?gpid=T62
    问题描述
      最近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

    二.解决

    思路:按照题目给的两个表达式列字符串即可
    A[i]="A" + "sin(" + "i" + "i个)"
    s初始设为"n-1个'('"
    s="s" + "A[i]" + "+" + "n-i+1" + "1个)"
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main(){
     4     int N;
     5     char t;
     6     cin>>N;
     7     string s="";
     8     string A="",T="",H=""; 
     9     for(int i=0;i<N-1;i++){
    10         //s初始设为"n-1个'('"
    11         s+='(';  
    12     }
    13     
    14     for(int i=1;i<=N;i++){
    15         //A[i]="A" + "sin(" + "i" + "i个)" 
    16         T+=')';//T是')'的叠加体 
    17         A+="sin(";
    18         t='0'+i;
    19         A+=t;//A是A[i]的叠加体 
    20         H=A+T;  //H表示A[i] 
    21         
    22         //s="s" + "H" + "+" + "n-i+1" + "1个)" 
    23         s+=H;
    24         s+='+';
    25         t='0'+(N-i+1);
    26         s+=t;
    27         if(i!=N) s+=')';
    28         
    29         //为下一个A[i]做准备 加上正负号 
    30         if(i%2==1) A+='-';
    31         else A+='+';
    32     }
    33     
    34     cout<<s<<endl;
    35 } 
     
     
     
  • 相关阅读:
    bzoj 3155: Preprefix sum
    bzoj 1854: [Scoi2010]游戏
    UVA1608 不无聊的序列 Non-boring sequences
    UVA1747 【Swap Space】
    Luogu P5550 Chino的数列
    bzoj 1799: [Ahoi2009]self 同类分布
    bzoj 1054: [HAOI2008]移动玩具
    MATLAB工具箱,应用程序,软件和资源的精选清单
    论文格式排版Issue及解决办法
    《将博客搬至CSDN》
  • 原文地址:https://www.cnblogs.com/Aiahtwo/p/12741581.html
Copyright © 2011-2022 走看看