文章目录
前言:
快过年了,我马上也要回家了,可能要停一段时间
如果有问题交流咨询,可以加入QQ群:673852347
85 计算多项式的值
问题描述 :
计算并输出当x<0.97时下列多项式的值,直到最后一项的绝对值小于threshold(该项不包括在多项式的结果中)为止。
输入说明 :
可输入多组测试数据,每组一行,每组包括两个实数,第一个为x(0.2≤x <0.97),第二个为threshold(≥0.000001),中间以空格分隔。
输出说明 :
对于每组测试数据,输出一行,为计算出的结果,保留6位小数。输出的结果前后均无空格。两组运算结果之间为空行。
输入范例 :
0.2 0.000001
0.21 0.000001
输出范例 :
1.095445
1.100000
AC代码:
注意使用绝对值函数作为终止条件即可,应该是有一个例子的精度大于1了。所以我给了个特判,然后加和就行了
#include<stdio.h>//:Q+_+Q:东华我来喽 2020考研:summershell
#include<math.h>//这不是(1+x)^0.5次方的展开吗?Easy!
int main()
{
double threshold,x;
int cou=1;
while(scanf("%lf %lf",&x,&threshold)!=EOF)
{//唉!做着做着开始伤感了。就想起了宇哥的话,这类题目我早已熟稔于心
if(cou++!=1)printf("\n");
if(threshold>1){printf("0.000000\n");continue;}
int n=2;
double sum=1.0,temp=0.5*x;
while(fabs(temp)>=threshold)
{
sum+=temp;
temp=temp*(0.5-n+1)*x*1.0/n;
n++;
}
printf("%.6f\n",sum);
}
return 0;
}