原题链接:蓝桥杯基础练习VIP-Sine之舞
这题做了很久 用的是递归的方法 递归大法好 写起来思路比较清晰 但也比较麻烦 废话不多说 上代码:
#include<iostream> #include<cstring> #include<sstream> using namespace std; int x; string f(int n) { string str=""; if(n==1) { stringstream ss; ss<<n; str="sin("; str+=ss.str(); return str; } else { str+=f(n-1); if(n%2!=0) str+="+"; if(n%2==0) str+="-"; str+="sin("; stringstream ss; ss<<n; str+=ss.str(); return str; } } string a(int n) { string str1=""; str1+=f(n); for(int i=0;i<n;i++) { str1+=")"; } return str1; } string s(int n) { string str=""; if(n==1) { str+=a(n); str+="+"; stringstream ss; ss<<x; str+=ss.str(); return str; } else { str+="("; str+=s(n-1); str+=")"; if(n==x) { str+=a(x); str+="+"; str+="1"; } else { str+=a(n); stringstream ss2; str+="+"; ss2<<(x-n)+1; str+=ss2.str(); } return str; } } int main() { //freopen("data.in.txt","r",stdin); //freopen("data.out.txt","w",stdout); int n; cin>>n; x=n; cout<<s(n); return 0; }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复