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


zxm20243 (zxm20243)

學校 : 國立臺灣大學
編號 : 8385
來源 : [111.243.94.71]
最後登入時間 :
2017-07-14 20:31:22
d489. 伏林的三角地 -- 板橋高中教學題 | From: [140.112.241.247] | 發表日期 : 2009-11-02 00:35

我是有做出來這題

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

會發覺到似乎會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 (討厭不跟範例輸入的測資(吼))

學校 : 不指定學校
編號 : 7937
來源 : [202.40.139.107, 175.159.107.90]
最後登入時間 :
2013-02-27 19:40:50
d489. 伏林的三角地 -- 板橋高中教學題 | From: [61.18.109.87] | 發表日期 : 2009-11-02 07:52

#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 (學姊)

學校 : 臺北市立麗山高級中學
編號 : 6634
來源 : [60.250.138.144]
最後登入時間 :
2022-08-09 17:07:42
d489. 伏林的三角地 -- 板橋高中教學題 | From: [118.166.115.195] | 發表日期 : 2009-11-02 18:43

我是有做出來這題

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

會發覺到似乎會overflow,

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

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

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

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

 整數就可以囉

 
ZeroJudge Forum