推 AppleFox:可以的話盡量不要一直用pow()算值 用乘法速度會差很多 03/02 13:31
double pi(int k)
{
double pi = 0.0;
int i;
for(i=0; i<k; i++)
{
if(i%2==0)
{
pi += 1.0/(2.0*i + 1.0);
}
else
{
pi -= 1.0/(2.0*i + 1.0);
}
}
return 4*pi;
}
int main()
{
int i=0, j;
printf("intput j: ");
scanf("%d", &j);
每一次的回圈都會重算一次一樣的東西
↓請移到迴圈外,宣告一個變數把他記起來
while( fabs(pi(i+1) - pi(i)) >= pow(10, -j) ) // fabs浮點絕對值,pow次方
{ ↑
│當i=1時,你的迴圈計算了一次 pi(2)、pi(1)
當i=2時,你的迴圈計算了一次pi(3)、pi(2)
請不要重複計算之前算過的東西 ↑
i++;
}
printf("\n");
printf("(1)the smallest i => %d\n\n", i);
printf("(2)the pi(i) => %lf\n\n", pi(i));
system("pause");
return 0;
}
--
◢ 鄉民啊!鄉民! 請告訴我誰是最純潔的人!
◢█ │
PTT │
██ :就是你!Snow White F23ko!│
█◤ ╯
◤ ﹨(╯▽╰ )∕
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.27.109.99