蓝桥杯 BASIC-21 VIP试题 Sine之舞
【摘要】 试题 基础练习 Sine之舞提交此题 评测记录 资源限制时间限制:1.0s 内存限制:512.0MB问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。 不妨设 An=sin(1–sin(2+sin(3–sin(4+...sin(n))...) ...
试题 基础练习 Sine之舞
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。
不妨设
An=sin(1–sin(2+sin(3–sin(4+...sin(n))...)
Sn=(...(A1+n)A2+n-1)A3+...+2)An+1
FJ想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。
不妨设
An=sin(1–sin(2+sin(3–sin(4+...sin(n))...)
Sn=(...(A1+n)A2+n-1)A3+...+2)An+1
FJ想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。
输入格式
仅有一个数:N<201。
输出格式
请输出相应的表达式Sn,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
((sin(1)+3)sin(1–sin(2))+2)sin(1–sin(2+sin(3)))+1
解题思路--
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// An=sin(1–sin(2+sin(3–sin(4+...sin(n))...)
// Sn=(...(A1+n)A2+n-1)A3+...+2)An+1
// A(n)
// 首先是输出A(n):
// A(1) = sin(1)
// A(2) = sin(1-sin(2))
// A(3) = sin(1-sin(2+sin(3)))
// 注意i从1到n每次一定要输出sin(i,然后根据i的奇偶性输出+或-号。
// 最后输出n个右括号即可。
// S(n)
// 输出S(n):
// S(1) = A(1)+1
// S(2) = (A(1)+2)A(2)+1
// S(3) = ((A(1)+3)A(2)+2)A(3)+1
// …
// 首先输出n-1个左括号
// 然后仍然是i从1到n, 每次输出A(i)+(n-i+1),如果i不等于n,输出一个右括号(最后没有右括号)
Scanner scanf = new Scanner(System.in);
// 输入长度
int N = scanf.nextInt();
// 调用递归
printS(N);
}
// 输出A
static String printA(int n) {
String s = "sin(1" ;
String right = ")";
for (int i = 2; i <= n; i++) {
s += (i & 1) == 1 ? "+sin(" + i : "-sin(" + i;
right += ")";
}
return s + right;
}
// 输出S
static void printS(int n) {
String a = "";
for (int i = 1; i <= n; i++) {
a = "(" + a + printA(i) + "+" + (n - i + 1) + ")";
}
System.out.println(a.substring(1, a.length() - 1));
}
}
效果展示--

希望对大家有所帮助!
谢谢大家!
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)