题解 P3802 【小魔女帕琪】

· · 题解

好吧,其实讨论区的dalao已经把题解说的very清楚了。

注意一些小细节:

  1. 用double(float会挂两个点,就算本地过了)

  2. 不要乘完了所有再除(对于100%的测试点,a1+a2+a3+a4+a5+a6+a7<=10^9)

//aa=2*3*4*5*6*7*a*b*c*d*e*f*g;

//bb=sum*(sum-1)*(sum-2)*(sum-3)*(sum-4)*(sum-5);

//必挂无疑

其实很想问问,期望,小学生会吗?(反正我是小学生的时候,不会)

最后贴上代码:

double a,b,c,d,e,f,g,sum;
int main()
{
    cin>>a>>b>>c>>d>>e>>f>>g;
    sum=a+b+c+d+e+f+g;
    printf("%.3lf",5040*a/sum*b/(sum-1)*c/(sum-2)*d/(sum-3)*e/(sum-4)*f/(sum-5)*g);
}