作者Arim (Arim5566)
看板C_and_CPP
標題[ACM ] 10200 WA
時間Sat Feb 13 21:37:44 2010
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
題號:
10200
http://www.tcgs.tc.edu.tw/~sagit/luckycat/q10200.htm
遇到的問題:
WA
有問題的code: (請善用置底文的標色功能)
http://nopaste.csie.org/05e57
補充說明:
感覺是浮點數造成的誤差!?
在網路上爬了一下文章
解決這問題的方法是用兩個整數去表示整數部分跟小數部分
若換一下我的變數的話會變這樣
int ss=sum*100000/total;
if(ss%10>=5) ss=ss+10; //????
printf("%d.%02d\n",ss/1000,ss%1000/10);
可是看不太懂爲什麼可以這麼做@@ 感覺是很簡單的數學冏
另外問一下
我之前用.5lf印出30.50585
然後用.4lf印出30.5058 //沒有四捨五入
然後用.3lf印出30.501 //這有四捨五入
前面一個沒有四捨五入,一個卻有,不知道爲什麼@@
請版友幫幫忙了 謝謝^^
--
~宅男的四個徵兆~
∠□ ○ ! * \○/ ★ (○ ?
╦╦└□ " ○□═ □ □>
║║√√ ╦══╦ ∥ |\
一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.172.247.109
※ 編輯: Arim 來自: 218.172.247.109 (02/13 21:41)
※ 編輯: Arim 來自: 218.172.247.109 (02/13 21:43)
→ goodword:試試 printf("%.2lf%\n",ans+1e-7); 02/14 08:49
→ Arim:回樓上,之前就試過了,沒有辦法XD 02/14 13:07
※ 編輯: Arim 來自: 218.169.98.99 (02/14 13:10)
推 Y78:printf("%.2lf\n", 02/14 13:09
→ Y78:(double(total/double(b-a+1))+1e-9)*100.00) ; 02/14 13:09
→ Y78:我code是這樣然後AC了 total是有幾個質數 b-a+1是總共有幾個 02/14 13:09
→ Arim:用樓上方法不行..用我po在上面的code卻可以AC..怪哉 02/14 13:33