标签:names 问题 退出 nbsp 奶牛 换行符 基本 括号 完整
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
string itoa(int k) //整形转字符串
{
string res;
char c;
while(k)
{
c=‘0‘+k%10;
k/=10;
res=c+res;
}
return res;
}
string An(int n,int k) //k这个参数用来计算执行次数,从1开始
{
if(n==1) //函数执行n遍之后退出。 A1=sin(n)
{
string c=itoa(k);
string res="sin("; //方程式拼起来
res+=c;
res+=")";
return res;
}
else
{
string c=itoa(k);
string res="sin("; //当函数执行的次数 在n遍 之前,也就是执行了k(k<n)遍,如果k为奇数,An(n)=sin(k-An(n-1,k+1));如果k为偶数,An(n)=sin(k+An(n-1,k+1))
res+=c;
if(k%2==0)
res+="+";
else res+="-";
res+=An(n-1,k+1);
res+=")";
return res;
}
}
string Sn(int n,int k) //k用来计算执行次数
{
if(n==1)
return An(n,1)+"+"+itoa(k); //如果执行了n次,此时k等于n, 返回An(1,1)+k
else //当执行n次之前,递归方程为 Sn(n,k)=(Sn(n-1))An(n)+k
{
string res;
res+="(";
res+=Sn(n-1,k+1);
res+=")";
res+=An(n,1);
res+="+";
res+=itoa(k);
return res;
}
}
int main()
{
//cout<<An(5,1)<<endl;
int n;
cin>>n;
cout<<Sn(n,1)<<endl;
return 0;
}
标签:names 问题 退出 nbsp 奶牛 换行符 基本 括号 完整
原文地址:http://www.cnblogs.com/f-society/p/6714639.html