解题思路:递归嵌套,关键只是要看懂题目给出的公式到底是什么东西(给的数据真的很难猜啊)
注意事项: A1= sin(1)
A2 = sin(1-sin(2))
A3 = sin(1-sin(2-sin(3)))
S1 = A1 + 1
S2 = (A1 + 2)A2 + 1
S3 = ((A1 + 3)A2 +2)A3 +1
以此类推套出An和Sn就行
参考代码:
#include<bits/stdc++.h> using namespace std; string An=""; string Sn=""; int N; map<int,string>An_; string getAn(int n,int i){ if(n==1) return "sin("+to_string(i)+")"; if((i-n)&1) An = "sin("+to_string(i-n+1)+"+"+getAn(n-1,i)+")"; else An = "sin("+to_string(i-n+1)+"-"+getAn(n-1,i)+")"; return An; } string getSn(int n,int i){ if(n==1) return An_[1]+"+"+to_string(i); Sn = "("+getSn(n-1,i)+")"+An_[n]+"+"+to_string(i-n+1); return Sn; } main(){ cin>>N; for(int i=1;i<=N;i++){ An_[i] = getAn(i,i); //cout<<An_[i]<<endl; } cout<<getSn(N,N)<<endl; }
0.0分
0 人评分
大神老白 (C语言代码)浏览:649 |
剪刀石头布 (C语言代码)浏览:756 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:616 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:559 |
简单的a+b (C语言代码)浏览:494 |
1126题解浏览:599 |
1054题解浏览:467 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:597 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:656 |
1073题解浏览:625 |