一、问题及代码
/*
* 文件名称:123
* 作 者:潘雨佳
* 完成日期:2016年3月11日
* 版 本 号:codeblocks
* 对任务及求解方法的描述部分:
* 输入描述:用三种循环求f=1/1!-1/2!+1/3!-...+1/9!
* 问题描述:无
* 程序输出:0.632121
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
using namespace std;
int main()
{
int i(1),j(1),k(1);
double x(1),y(0);
while(i<10)
{
while(j<=i)
{
x=x*j;
j++;
}
y=y+k*(1.0/x);
k=-k;
i++;
}
cout<<y<<endl;
return 0;
}
***********************************
#include <iostream>
using namespace std;
int main()
{
int i(1),j(1),k(1);
double x(1),y(0);
do
{
do
{
x=x*j;
j++;
}while(j<=i);
y=y+k*(1.0/x);
k=-k;
i++;
}while(i<10);
cout<<y<<endl;
return 0;
}
***********************************
#include <iostream>
using namespace std;
int main()
{
int i,j,k(1);
double x(1),y(0);
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
x=x*j;
}
y=y+k*(1.0/x);
k=-k;
x=1;
}
cout<<y<<endl;
return 0;
}
二、运行结果
三、心得体会
三种方法用的同一个思路,细节方面总是有漏洞,逻辑思维不够清楚明白,但最后还是解决了问题。
四、知识点总结
for循环中x要重新赋值1,赋值可以用int i(1)的方式,奇偶项符号不同可以另外定义一个k使每次循环k=-k。