1137 - Sin your life
给一个正整数n,求下列表达式的最大值:
(sin(x)+sin(y)+sin(z))[x+y+z=n][x≥1][y≥1][z≥1],这里的x,y,z皆为整数
已知 x+y=m,则sinx+siny=sin(m-y)+siny
max=sqrt( sin(m) * sin(m) + (1-cos(m) * (1-cos(m) )
这个题是三个变量,只要枚举 z 的值,x+y=n-z; 然后求值就可以了
代码:
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
double ans=-10,cnt,t;
int m;
for(int i=1;i<n;++i)
{
m=n-i;
t=m*1.0;
cnt=sin(i*1.0)+sqrt(sin(t)*sin(t)+(1-cos(t))*(1-cos(t)));
ans=max(ans,cnt);
}
printf("%.9f\n",ans);
return 0;
}