| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 520 人关注过本帖
标题:彻底糊涂了
只看楼主 加入收藏
boris250
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-9-11
收藏
 问题点数:0 回复次数:4 
彻底糊涂了
上午弄的一上午,还是没有弄明白,这次是彻底的糊涂了。请各位大侠帮忙指点一下:
求A=0.5(0.5-1)…(0.5-n+1)*xn/n!,当A的绝对值小于0.000001时,输出n,其中x由用户自定义:
程序如下:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
double x,a,sum1,sum2,sum3;
sum1=1;
sum2=1;
sum3=0;
cout<<"请输入X的值:";
cin>>x;
for(n=1;;n++)
{
cout<<"n="<<n; //输出n的值
a=(0.5-double(n)+1); //计算(a-n+1)的值
cout<<"a="<<a<<endl; //输出a的值
sum1=sum1*a; //计算0.5(0.5-1)…(0.5-n+1)的值
cout<<"sum1="<<sum1<<endl; //输出sum1的值
sum2=sum2*n; //计算n!的值
sum3=sum1*pow(x,n)/sum2; //计算sum1乘以x的n次方然后再除以n!的值
cout<<"sum3="<<sum3<<endl; //输出sum2的值
if(fabs(sum3)<0.01) //断判sum3的绝对值是否小于0.000001
{
cout<<n<<endl; //如果sum3的绝对值小于0.000001,则输出n的值
break; //退出循环
}
}
return 0;
}

显示第一页为:
sum3=-1.03511e+040
n=73a=-71.5
sum1=2.03222e+102
sum3=4.05538e+040
n=74a=-72.5
sum1=-1.47336e+104
sum3=-1.58927e+041
n=75a=-73.5
sum1=1.08292e+106
sum3=6.22994e+041
显示的最后一页为:
n=169a=-167.5
sum1=5.49368e+300
sum3=7.20558e+097
n=170a=-168.5
sum1=-9.25686e+302
sum3=-2.8568e+098
n=171a=-169.5
sum1=1.56904e+305
sum3=0
171
Press any key to continue

不懂的问题:
1、 为什么首先不输出n,而是先输出sum1,sum3;
2、 n的输出是从73开始,为什么不是从1开始;
3、 Sum1,sum2的数据为什么会出现几十至几百次方

[此贴子已经被作者于2007-9-19 13:07:22编辑过]

搜索更多相关主题的帖子: include double 绝对值 用户 
2007-09-19 13:06
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 

你说的“第一页”并不是第一页,上面还有显示的内容,不过看不到了

for(n=1;;n++)  改成  for(n=1; n<20; n++) 试试,看前面显示的内容


C++学习
2007-09-19 13:31
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 
或者这样改,就可以看到全部内容啦

for(n=1;;n++)
{
cout<<"n="<<n; //输出n的值
a=(0.5-double(n)+1); //计算(a-n+1)的值
cout<<"a="<<a<<" "; //输出a的值
sum1=sum1*a; //计算0.5(0.5-1)…(0.5-n+1)的值
cout<<"sum1="<<sum1<<" "; //输出sum1的值
sum2=sum2*n; //计算n!的值
sum3=sum1*pow(x,n)/sum2; //计算sum1乘以x的n次方然后再除以n!的值
cout<<"sum3="<<sum3<<endl; //输出sum2的值
if(fabs(sum3)<0.01) //断判sum3的绝对值是否小于0.000001
{
cout<<n<<endl; //如果sum3的绝对值小于0.000001,则输出n的值
break; //退出循环
}
}

C++学习
2007-09-19 13:34
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 
3、 Sum1,sum2的数据为什么会出现几十至几百次方

x 你输出的是个正整数吧,比如 3

可以想像计算到 n=73 时, 3^73/73! 有多大!!!


你输个 x=0.5 看看,呵呵

[此贴子已经被作者于2007-9-19 13:41:28编辑过]


C++学习
2007-09-19 13:40
boris250
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-9-11
收藏
得分:0 

感谢!!!

[此贴子已经被作者于2007-9-19 16:22:11编辑过]

2007-09-19 16:16
快速回复:彻底糊涂了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015256 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved