搜索
编程论坛
→
开发语言
→
『 数据结构与算法 』
→ 1+1/2-1/3+1/4-1/5+1/6......
标题:
1+1/2-1/3+1/4-1/5+1/6......
取消只看楼主
wu550399048
等 级:
新手上路
帖 子:9
专家分:0
注 册:2012-10-25
结帖率:
100%
楼主
已结贴
√
问题点数:18 回复次数:3
1+1/2-1/3+1/4-1/5+1/6......
#include<iostream.h>
float f(int n){
int m=-1;
if(n=1) return 1;
if(n%2==0) return 1.0/n+f(n-1)*m;
else return (1.0/n)*m+f(n-1);
}
void main (){
double n;
cin>>n;
cout<<f(n);}
结果出不来小数,都是1,帮一下
搜索更多相关主题的帖子:
return
include
void
double
2012-11-23 19:58
wu550399048
等 级:
新手上路
帖 子:9
专家分:0
注 册:2012-10-25
第
2
楼
得分:0
#include<iostream.h>
class stack{
private:
double*st;
int msize;
public:int top;
stack(){
top=-1;}
stack(int size){
msize=size;
st=new double(msize);
top=-1;
}
void push(double n);
double pop();
};
void stack::push(double n){
st[++top]=n;
}
double stack::pop(){
if(top==-1)
return 0;
else return st[top--];
}
void main(){
int n;double m=0;double x;
cin>>n;
stack s(n);
for(int i=n;i>0;i--){
if(n==1)
s.push(1); break;
if(n%2==0) s.push(1.0/n);
else s.push(-1.0/n);
}
if(s.top!=-1){
x=s.pop();
m=m+x;
}cout<<m<<endl;
}
出不来结果,结果是0;看一下实现1+1/2-1/3+1/4-1/5......的非递归算法
2012-11-23 20:01
wu550399048
等 级:
新手上路
帖 子:9
专家分:0
注 册:2012-10-25
第
3
楼
得分:0
谢谢。。。
2012-11-30 20:42
wu550399048
等 级:
新手上路
帖 子:9
专家分:0
注 册:2012-10-25
第
4
楼
得分:0
回复 楼主 wu550399048
#include<iostream.h>
double f(int n){
int m=-1;
if(n==1) return 1.0;
if(n==2) return 1+0.5;
if((n%2==0)&&(n>2))
return 1.0/n+f(n-1);
else return (1.0/n)*(-1.0)+f(n-1);
}
void main (){
int n;
cin>>n;
cout<<f(n);}
这是正确的了
收到的鲜花
寒风中的细雨
于
2012-11-30 21:37
送鲜花
10朵 附言:什么意思呀。。。。。。
2012-11-30 21:05
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-388177-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.196801 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved