搜尋此網誌

2019年6月19日 星期三

Zero Judge : d489

緣起:


    在今天考完國文後,我一直都待在圖書館裡寫文章。圖書館的椅子真的很不好坐,再加上我坐了很久,後來,坐到身體真的是很不舒服,所以就出去走走。

    走回來後,我有點不知道要做什麼,不想再回去坐了...,沒心情讀書,而且也沒地方好去。我不想回去宿舍,然後我同學又還在工作,沒辦法去他家。之後我想到,如果電腦教室沒人的話,我可以待在那,有冷氣,還有舒服的椅子。

    然後我到電腦教室後又他X的不知道該做些什麼... 後來想到,我可以去 Zero Judge 上找以前寫不過的題目來做。



Zero Judge 介紹:


    他是一個程式解題的平台,中文叫 "高中生程式解題系統 " (其實它也適合大學生) ,你可以把你的程式碼貼上,讓它去跑,然後它就會告訴你有無通過題目。

    我高中時的程設老師就是用這裡面的題庫來訓練我們的,如果有興趣的話,你也可以辦個帳號加入,來解題,這是個能提升寫程式能力的好平台,而且你解越多,會越有成就感。

不是只有C語言喔 ~

    我之後會持續在部落格上分享一些 Zero Judge 裡面題目的解法。


題目d489:




想法:


    給三邊長求三角形的面積 ? 這好像就是我們高中學過的 "海龍公式" ,直接拿來用就好了,而且他要求的是面積的平方,那就更好做了,平方就去掉了海龍公式裡的那個根號。


解題:


    我高中時送出去的程式碼失敗,所以我就有點好奇,我那時是寫了些什麼。

PS : NA 代表答案有錯,AC 代表通過

我打開來看了一下。

程式碼

    這什麼鬼 ? 那程式碼好像完全跟題目沒關聯,我那時到底在做些什麼....

    所以,我就在電腦教室又寫了一支程式,送上去讓它跑。


PS : 我那時候以為,2147483647已經超過 int 的大小了 (其實沒有) ,所以 printf 那邊的 % 後加的是 lld, lld代表的是 long long int ,範圍是從 -9223372036854775808 ~ 9223372036854775807。

跑完後的結果....


    啥 ? 怎麼還是全錯 ? 看一下它評分的詳細結果。


    每筆測資的結果都是 TLE,TLE 表示超過了他限制的時間,就是我的程式 run 太久了,感覺,應該跟我那個 while 迴圈有關。

    再仔細看了一下它題目的說明。



    喔喔,它每筆測資都只會有一個輸入而已,所以不需要用到 while 迴圈。

    把 while 迴圈刪除後,再送出去...


    yes ~ 過了。



程式碼:



#include <stdio.h>

int main(){ 
 int a, b, c, s;
 //三角形的三邊和海龍公式裡的 s 
 scanf("%d %d %d", &a, &b, &c);
 //下面就是海龍公式 
 s=(a+b+c)/2;
 printf("%d\n", s*(s-a)*(s-b)*(s-c)); 
 
 return 0;
}

沒有留言:

張貼留言