Sin your life 数学

来源:互联网 发布:mac os xcode 编辑:程序博客网 时间:2024/05/16 23:00

Description

给一个正整数n,求下列表达式的最大值:

((sin(x)+sin(y)+sin(z)))[x+y+z==n][x1,y1,z1]

x,y,z均为整数

Input

输入只有一行,包含一个正整数n

(3n3106)

Output

输出一行表示答案,请恰好保留9位小数.(你的答案必须和标准答案完全一样才算通过)

Sample Input

3

Sample Output

2.524412954

Hint

题意

题解:

转换一下原式 为

2sin(x+y2)cos(xy2)+sin(nxy)

然后枚举x+y 因为x+y为定值所以令x==y,cos有最大值1 所以有
2sin(x)+sin(n2x)

AC代码

#include <cstdio>#include <cmath>const double pi = acos(-1.0);int main(){    int n;    scanf("%d",&n);    double sum = 0;    double mx = -999999;    for (int i = 1; i <= n; ++i){        sum = 2*sin(i*1.0)+sin(n-2*i);        if (sum > mx) mx = sum;    }    printf("%.9lf\n",mx);    return 0;}
原创粉丝点击