解题思路:本道题采用递归,首先根据观察An发现一个类似于数学分段函数的公式,n默认初始值为1,当n==N(即输入的值)时,An为sin(N);当n<N时,An=sin( n + (-1)的n次方 + A(n+1)),由此写出递归函数,而Sn=(...(A1+n)A2+n-1)A3+...+2)An+1,利用for循环输出即可。


注意事项:字符串在函数内的存储方式

参考代码:

#include<cstdio>

#include<string>

#include<iostream>

using namespace std;

string sin="sin";

string jia="+";

string jian="-";

string kuo1="(";

string kuo2=")"; 

string A(char n,char n0)

{

if(n0==n)

return sin+kuo1+n+kuo2;

else if((n0-48)%2==0)

return sin+kuo1+(char)(n0)+jia+A(n,n0+1)+kuo2;

else

return sin+kuo1+(char)(n0)+jian+A(n,n0+1)+kuo2;

}

int main()

{

int i=0;

char n;

char n0='1';

scanf("%c",&n);

for(i=0;i<n-48-1;i++)

printf("(");

for(i=0;i<n-48-1;i++)

cout<<A(n0++,'1')<<"+"<<(char)(n-i)<<")";

cout<<A(n,'1')<<"+1";


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论