思路
规律的输出用递归。
code
#include <bits/stdc++.h>
using namespace std;
int x,y,n;//因为Sn和An是反着的,y要根据每次Sn递归的上界更改
void dfs(int n){
if(n==0) return;
cout<<"sin(";
cout<<y-n+1;
if(n>1) (y-n+1)%2?cout<<'-':cout<<'+';
dfs(n-1);
cout<<')';
}
void dfs1(int n){
if(n==0) return;
if(n>1) cout<<'(';
y=x-n+1;
dfs(x-n+1);
cout<<'+'<<n;
if(n>1)cout<<')';
dfs1(n-1);
}
int main(){
cin>>n;
x=n;
dfs1(n);
return 0;
}