| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 863 人关注过本帖
标题:1+1/2-1/3+1/4-1/5+1/6......
只看楼主 加入收藏
wu550399048
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-10-25
结帖率:100%
收藏
已结贴  问题点数:18 回复次数:7 
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
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-10-25
收藏
得分: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
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:6 
if(n=1) return 1;


if里面的条件
2012-11-23 20:36
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:2 
刚写了一个类似的东东

https://bbs.bccn.net/thread-388162-1-1.html

DO IT YOURSELF !
2012-11-23 20:39
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:10 
程序代码:
#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(i==1)
         {
             s.push(1);  break;
         }
         if(i%2==0)  s.push(1.0/i);
         else s.push(-1.0/i);
     }
     while(s.top!=-1){
         x=s.pop();
         m=m+x;
         }
     cout<<m<<endl;
     }

 
2012-11-23 20:45
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 2楼 wu550399048
代码 排版整齐点  不然查问题都麻烦点
2012-11-23 20:46
wu550399048
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-10-25
收藏
得分:0 
谢谢。。。
2012-11-30 20:42
wu550399048
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-10-25
收藏
得分: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
快速回复:1+1/2-1/3+1/4-1/5+1/6......
数据加载中...
 
   



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

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