看板 C_and_CPP 關於我們 聯絡資訊
題號:10209 英文題目:http://tinyurl.com/ya7c3yx 遇到的問題: 題目的Sample Input: 0.1 0.2 0.3 Sample Output: 0.003 0.005 0.002 0.013 0.020 0.007 0.028 0.046 0.016 他的output是只取到小數點後三位的結果 但我的程式是在"還沒有捨去小數點後三位"後 的情況下,輸入0.1會得到: 0.002718 0.005981 0.001302 沒有道理ACM要讓第一個進位成0.003,第二個不要進位成0.005啊@@ 有問題的code: (請善用置底文的標色功能) #include <iostream> #include<cmath> using namespace std; int main() { double a,n1,n2,n3; while(scanf("%lf",&a)!=EOF) { n1=( (2*3.1415926-pow(3,1.5))/4.0 )*a*a; n2=( (pow(3,1.5)-4)/2.0 )*a*a; n3=a*a-n1-n2; printf("%lf %lf %lf\n",n1,n2,n3); } return 0; } 補充說明: π用3.1415926,3*√3用pow(3,1.5),用double而非long double,不曉得是不是關鍵。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.230.240
joefaq:你都知道了還問 2*acos(0.0)的精度比小數點下7位高多了 12/04 04:18
joefaq:發現是你程式寫錯 這題根據我的印象判斷面積沒這麼簡單 12/04 04:28
syuusyou:pi不夠準確,而且算式列錯了再算一次吧 12/04 05:31
bil193:謝謝各位的一鞭 已經AC了 12/05 10:53