64,681
社区成员
发帖
与我相关
我的任务
分享
把代码贴图是为了保护版权不让别人轻易复制粘贴吗?
//1+x-x^2/2!+x^3/3!-…………(-1)^(n+1)x^n/n!
#include <iostream>
#include <cmath>
//#include <iomanip>
using namespace std;
/*
int fac(int n)
{
if(n < 0)
return 0;
if(n == 0 || n == 1)
return 1;
else
return n * fac(n - 1);
}
int main()
{
double x;
double factor = 1;
double numerator;
double denominator ;
double item, sum = 1;
const double error = 1e-8;
int n = 1;
cin >> x;
numerator = x;
item = x;
for(;abs(item) > error;n++)
{
sum += item;
item = factor*numerator/fac(n);
factor = pow(-1,n+1);
numerator = pow(x,n);
denominator = fac(n);
cout.precision(10);
cout << left;
}
//cout << sum << endl;
}
*/
#define MIN 1e-8
long fac(long n)
{
if (n == 0 || n == 1)
return 1;
else
return (n * fac(n-1));
}
int main(void)
{
double sum = 1.0, item;
int n, x, sign = 1;
while (cin>>x && x < 0)
;
n = 1;
item = pow(-1, n+1) * pow(x, n) / fac(n);
while (fabs(item) >= MIN) {
sum += item;
n++;
item = pow(-1, n+1) * pow(x, n) / fac(n);
cout.precision(9);
cout<<fabs(item)<<"\t";
}
cout.precision(9);
cout<<"sum = "<<sum<<endl;
return 0;
}
参考一下吧~把代码贴图是为了保护版权不让别人轻易复制粘贴吗?
[code=c]#include <iostream>
#include <cmath>
#include <iomanip>
#include <cassert>
using namespace std;
int Factorial(int n, int result = 1)
{
assert(n >= 0);
if(n == 0 || n == 1){
return result;
} else{
return Factorial(n - 1, n * result);
}
}
int main()
{
double x, factor, numerator, denominator, item, sum = 0.0;
const double epsilon = 1e-8;
int n = 0;
cin >> x;
do{
factor = pow(-1, n + 1);
numerator = pow(x, n);
denominator = Factorial(n);
item = factor * numerator / denominator;
sum += item;
cout << "item = " << item << endl;
}while(fabs(item) >= epsilon && ++n);
cout.precision(10);
cout << "sum = " << sum << endl;
}
[/code]
。。。[quote=引用 9 楼 cfjtaishan 的回复:]参考一下吧~//1+x-x^2/2!+x^3/3!-…………(-1)^(n+1)x^n/n! #include <iostream> #include <cmath> //#include <iomanip> using namespace std; /* int fac(int n) { if(n < 0) return 0; if(n == 0 || n == 1) return 1; else return n * fac(n - 1); } int main() { double x; double factor = 1; double numerator; double denominator ; double item, sum = 1; const double error = 1e-8; int n = 1; cin >> x; numerator = x; item = x; for(;abs(item) > error;n++) { sum += item; item = factor*numerator/fac(n); factor = pow(-1,n+1); numerator = pow(x,n); denominator = fac(n); cout.precision(10); cout << left; } //cout << sum << endl; } */ #define MIN 1e-8 long fac(long n) { if (n == 0 || n == 1) return 1; else return (n * fac(n-1)); } int main(void) { double sum = 1.0, item; int n, x, sign = 1; while (cin>>x && x < 0) ; n = 1; item = pow(-1, n+1) * pow(x, n) / fac(n); while (fabs(item) >= MIN) { sum += item; n++; item = pow(-1, n+1) * pow(x, n) / fac(n); cout.precision(9); cout<<fabs(item)<<"\t"; } cout.precision(9); cout<<"sum = "<<sum<<endl; return 0; }
参考一下吧~//1+x-x^2/2!+x^3/3!-…………(-1)^(n+1)x^n/n! #include <iostream> #include <cmath> //#include <iomanip> using namespace std; /* int fac(int n) { if(n < 0) return 0; if(n == 0 || n == 1) return 1; else return n * fac(n - 1); } int main() { double x; double factor = 1; double numerator; double denominator ; double item, sum = 1; const double error = 1e-8; int n = 1; cin >> x; numerator = x; item = x; for(;abs(item) > error;n++) { sum += item; item = factor*numerator/fac(n); factor = pow(-1,n+1); numerator = pow(x,n); denominator = fac(n); cout.precision(10); cout << left; } //cout << sum << endl; } */ #define MIN 1e-8 long fac(long n) { if (n == 0 || n == 1) return 1; else return (n * fac(n-1)); } int main(void) { double sum = 1.0, item; int n, x, sign = 1; while (cin>>x && x < 0) ; n = 1; item = pow(-1, n+1) * pow(x, n) / fac(n); while (fabs(item) >= MIN) { sum += item; n++; item = pow(-1, n+1) * pow(x, n) / fac(n); cout.precision(9); cout<<fabs(item)<<"\t"; } cout.precision(9); cout<<"sum = "<<sum<<endl; return 0; }
你那是什么编辑器,我猜是conTEXT
代码本身就有问题,因此不要纠结一个判断为什么不能输出,先要检测到代码的其他部分的问题; 在使用numerator和item时,这两个数是随机数,没有初始化就在for循环里使用了。但是,楼主可能会说,我上面对这两个变量初始化了,初始化位x了,但是初始化这两个变量时x是什么值呢,也是随机值。因此这两个值也是随机值。
[quote=引用 8 楼 zhao4zhong1 的回复:] 把代码贴图是为了保护版权不让别人轻易复制粘贴吗?
f(x) = -1 + x - x^2/1 * 2 +...+ (-1)^(2n + 1) * x^n/n!楼主是想求这个级数?但是代码不对