原题链接:蓝桥杯基础练习VIP-Sine之舞
解题思路:递归嵌套,关键只是要看懂题目给出的公式到底是什么东西(给的数据真的很难猜啊)
注意事项: A1= sin(1)
A2 = sin(1-sin(2))
A3 = sin(1-sin(2-sin(3)))
S1 = A1 + 1
S2 = (A1 + 2)A2 + 1
S3 = ((A1 + 3)A2 +2)A3 +1
以此类推套出An和Sn就行
参考代码:
#include<bits/stdc++.h> using namespace std; string An=""; string Sn=""; int N; map<int,string>An_; string getAn(int n,int i){ if(n==1) return "sin("+to_string(i)+")"; if((i-n)&1) An = "sin("+to_string(i-n+1)+"+"+getAn(n-1,i)+")"; else An = "sin("+to_string(i-n+1)+"-"+getAn(n-1,i)+")"; return An; } string getSn(int n,int i){ if(n==1) return An_[1]+"+"+to_string(i); Sn = "("+getSn(n-1,i)+")"+An_[n]+"+"+to_string(i-n+1); return Sn; } main(){ cin>>N; for(int i=1;i<=N;i++){ An_[i] = getAn(i,i); //cout<<An_[i]<<endl; } cout<<getSn(N,N)<<endl; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复