[ACM ] 10209 覺得sample output怪怪的
題號: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
推
12/04 04:18, , 1F
12/04 04:18, 1F
→
12/04 04:28, , 2F
12/04 04:28, 2F
推
12/04 05:31, , 3F
12/04 05:31, 3F
→
12/05 10:53, , 4F
12/05 10:53, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章