蒜头君正在学习使用sin函数。蒜头君突发奇想,在草稿纸上写了一个函数:
f(n) =sin(1+sin(2+sin(3+...sin(n)...))
g(n)= (...(((f(1) + n)f(2) + n - 1)f(3) + n - 2) ...)f(n)+1
有时候n太大了,蒜头君写不出来,你能帮蒜头君写出完整的表达式吗?
输入格式
输入一个正整数n(0<n<200)。
输出格式
输入完整的g(n)的sin表达式。
样例输入1
1
样例输出1
sin(1)+1
样例输入2
3
样例输出2
((sin(1)+3)sin(1+sin(2))+2)sin(1+sin(2+sin(3)))+1
#include <iostream>
#include <string>
using namespace std;
void f(int i,int n){
if(i>n) return;
cout<<"sin"<<"("<<i;
if(i!=n)
cout<<"+";
f(i+1,n);/*题目定义函数时是递归定义的,所以这里递归实现 */
cout<<")";
return;
}
int main() {
int n;
cin>>n;
int t=n-1;
while(t--){
cout<<"(";/*每个答案前面有n-1个左括号*/
}
for(int i=1;i<=n;i++){
f(1,i);
cout<<"+"<<(n-i+1);
if(n-i+1 != 1) cout<<")";
}
return 0;
}