已知π=6arctanx(1/√3),小括号中是1除以根号3。
根据下面公式(arctanx的麦克劳林展开式,注意n是从等于0开始,n最小取值为0):
求当此公式中最后一项的绝对值(下同,都是指绝对值)小于10^(-t)时π的值。
t由用户从键盘输入,t等于1时,表示arctanx的数列的最后一项要小于0.1;t等于2时,表示最后一项要小于0.01,以此类推。
注意最后的输出的π需要保留8位小数。
输入格式:
输入一个整数,该整数一定在1到7之间。
输出格式:
带8位小数的π的值。
输入样例:
输入2,表示最后一项绝对值小于10的-2一次方,也就是0.01。
因为x固定等于1除以根号3,也就是约等于0.577350269。arctanx展开的前几项,分别为0.577350269,
-0.06415003,0.012830006,-0.003054763。要保证最后一项的绝对值小于0.01,就要把上述4项加起来。求和后乘以6,就是π的值。
2
输出样例:
必须保留8位小数。
PI = 3.13785289
正确答案:
# include<stdio.h>
# include<math.h>
int main()
{
double x,arctanx = 0,lastnumber;
int n = 0,t;
scanf("%d",&t);
x = 1.0/pow(3,0.5);//重要
while(1)
{
lastnumber = pow(-1,n)*(1.0/(2*n+1))*pow(x,2*n+1);
arctanx = arctanx + lastnumber;
n++;
if(fabs(lastnumber) < pow(10,-(t)))
break;
}
printf("PI = %.8lf",6*arctanx);
}