基础练习 Sine之舞
(Sn的计算方法不同)
方法一:
#include<bits/stdc++.h>
using namespace std;
void an(int i,int n)
{
if(i==n)
{
cout<<"sin(";
cout<<n;
cout<<")";
}
else
{
cout<<"sin(";
cout<<i;
if(i<n)
{
if(i%2==1)
cout<<"-";
else
cout<<"+";
}
an(i+1,n);
cout<<")";
}
}
void sn(int i,int n)
{
if(i==1)
{
an(1,i);
cout<<"+";
cout<<n;
}
else
{
cout<<"(";
sn(i-1,n);
cout<<")";
an(1,i);
cout<<"+";
cout<<n-i+1;
}
}
int main()
{
int n;
cin>>n;
sn(n,n);
return 0;
}
方法二:
#include<bits/stdc++.h>
using namespace std;
void an(int i,int n)
{
if(i==n)
{
cout<<"sin(";
cout<<n;
cout<<")";
}
else
{
cout<<"sin(";
cout<<i;
if(i<n)
{
if(i%2==1)
cout<<"-";
else
cout<<"+";
}
an(i+1,n);
cout<<")";
}
}
void sn(int i,int n)
{
if(i==n)
{
an(1,i);
cout<<"+1";
}
else
{
an(1,i);
cout<<"+";
cout<<n-i+1;
cout<<")";
sn(i+1,n);
}
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n-1;i++)
{
cout<<"(";
}
sn(1,n);
return 0;
}