緣起:
在今天考完國文後,我一直都待在圖書館裡寫文章。圖書館的椅子真的很不好坐,再加上我坐了很久,後來,坐到身體真的是很不舒服,所以就出去走走。
走回來後,我有點不知道要做什麼,不想再回去坐了...,沒心情讀書,而且也沒地方好去。我不想回去宿舍,然後我同學又還在工作,沒辦法去他家。之後我想到,如果電腦教室沒人的話,我可以待在那,有冷氣,還有舒服的椅子。
然後我到電腦教室後又他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 ~ 過了。
每筆測資的結果都是 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;
}
沒有留言:
張貼留言