#2584: 只用整數作的話???


zxm20243 (zxm20243)


我是有做出來這題

只是如果暴力用海龍作的話

會發覺到似乎會overflow,

所以到最後勢必得調整一些四則運算的順序

#include <stdio.h>
int main( void )
{
     double a, b, c;
     scanf( "%lf%lf%lf", &a, &b, &c );

     printf( "%.0lf", (a/2+b/2+c/2) * (b/2+c/2-a/2) * (a/2+c/2-b/2) * (a/2+b/2-c/2) );


return 0;
}

只是我覺得,似乎有可以只用整數作的方法

能否請路過的高人指點一下嗎?

提示即可,感謝>"<

#2585: Re:只用整數作的話???


awpkiller (討厭不跟範例輸入的測資(吼))


#include 

int main( void )
{
     double a, b, c;
     scanf( "%lf%lf%lf", &a, &b, &c );

     printf( "%.0lf", (a/2+b/2+c/2) * (b/2+c/2-a/2) * (a/2+c/2-b/2) * (a/2+b/2-c/2) );


return 0;
}

依我看, 先將4項乘上最後再除就夠了(這樣a,b,c都可以是整數類)

我用的是pascal~之後round了那個答案就是了

因為這條公式比較煩的這是在於那4個除2

所以最好保證能被16整除@@ 

#2586: Re:只用整數作的話???


example (學姊)


我是有做出來這題

只是如果暴力用海龍作的話

會發覺到似乎會overflow,

所以到最後勢必得調整一些四則運算的順序

只是我覺得,似乎有可以只用整數作的方法

 海龍的公式是 s*(s-a)*(s-b)*(s-c)

 而 s = (a+b+c)/2

 整數就可以囉