c语言 输入一个实数x,计算多项式x+(x^2)/2!+(x^3)/3!+...的和,直到末项的绝对值小于10^-5(保留三位小数)

Input
多组测试数据,每组输入一个实数x
Output
输出多项式的和, 保留三位小数
input 1
2
3.2
output 1.718
6.389
25.533

第1个回答  2014-04-04
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void main(void){
double sum,tmp,x;
__int64 i;
int n;
printf("Input n(integer...)\nn=");
scanf("%d",&n);
while(n--){
printf("Type x...\nx=");
scanf("%lf",&x);
for(sum=0,tmp=i=1;tmp>=1.0E-5;sum+=(tmp*=x)/=i++);
printf("The result is %.3f\n",sum);
}
}
第2个回答  2019-01-07
#include<stdio.h>
#include<math.h>
int main()
{
float x,i = 1.0,y = 0.0,j;
scanf("%f",&x);
float sum = x;
while(sum >= 0.00001)
{
sum = pow(x,i);
for(j = 1;j <= i;j++){
sum = sum/j;
}
y += sum;
i++;
}
printf("%.3f",y);
return 0;
}
第3个回答  推荐于2017-10-16
#include<stdio.h>
#include<math.h>
int main()
{
double x;
scanf("%f",&x);
int i = 2;
double tmp = x, result = x;
while (tmp >= pow(10, -5))
{
tmp = pow(x, i);
for (int k = 1; k <= i; k++)
tmp = tmp / k;
result += tmp;
i++;
}
printf("%.3f\n", result);
return 0;
}

本回答被网友采纳
第4个回答  2014-04-04
//写了一个,看看行不行。
#include <iostream>
#include <MATH.H>
using namespace std;
int jiecheng(int i)
{
if(i==1)
return 1;
else
return i * jiecheng(i-1);
}
double fun(double x,int i)
{
return pow(x,i)/jiecheng(i);
}
int main()
{
while(true)
{
double n=0;
cin>>n;
int c=1;
double temp=0.0;
double s=0.0;
while((temp=fun(n,c++)) >= 1.0E-5)
s+=temp;
cout<<s<<endl;
}
return 0;
}

相似回答