一、解题思路:<<递归>>
1、首先,我们需要找到公式An以及Sn的规律,对此,我们可以写出前面几个值:
对于An有:
A1=sin(1)
A2=sin(1-sin(2))
A3=sin(1-sin(2+sin(3)))
对于Sn有:(下方的An可直接将上面计算出的An式子代入,就意味着Sn函数中会调用An函数)
A1=A1+1
A2=(A1+2)A2+1
A3=((A1+3)A2+2)A3+1
2、找到基本规律后,我们便可写出两个分别计算An以及Sn的功能函数(具体详见下方完整代码)
3、编写主函数,调用功能函数,完成代码编写。
4、检验代码正确与否即可
二、完整代码
#include<iostream>
using namespace std;
void An(int i,int n)
{
if(i==n)
{
cout<<"sin("<<i<<")";
}
else
{
if(i%2==0)
{
cout<<"sin("<<i<<'+';
An(i+1,n);
cout<<")";
}
else
{
cout<<"sin("<<i<<'-';
An(i+1,n);
cout<<")";
}
}
}
void Sn(int n,int i)
{
if(n==1)
{
An(1,n);
cout<<'+'<<i;
}
else
{
cout<<"(";
Sn(n-1,i+1);
cout<<")";
An(1,n);
cout<<'+'<<i;
}
}
int main()
{
int N;
cin>>N;
Sn(N,1);
return 0;
}
PS:以上为本人拙见,首次写题解,若有错误,望大家不吝赐教,共同进步,十分感谢!!!