非递归实现(栈方法):1 + 1/2 - 1/3 + 1/4 - 1/5.......
来源:互联网 发布:同花顺股票模拟软件 编辑:程序博客网 时间:2024/05/18 14:14
/* 非递归实现(栈方法):
*
* 1 + 1/2 - 1/3 + 1/4 - 1/5…….
*/
/* 非递归实现(栈方法): * * 1 + 1/2 - 1/3 + 1/4 - 1/5....... */#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR 0#define MAXSIZE 20typedef double ElemType;typedef int Status;typedef struct{ ElemType data[MAXSIZE]; int top;}Sqstack;//顺序栈的初始化Status InitSqstack(Sqstack * S){ S->top=-1; return OK;}//顺序栈的出栈Status Pop(Sqstack * S,ElemType * e){ *e=S->data[S->top--]; return OK;}//顺序栈的入栈Status Push(Sqstack * S,ElemType e){ S->data[++S->top]=e; return OK;}double Recursion(Sqstack * S,int n){ ElemType m=0; ElemType result=0; ElemType temp; while(n>0) { if(n==1 || n%2==0) { m=1.0/n; } else { m=-(1.0/n); } Push(S,m); n--; } while(S->top!=-1) { Pop(S,&temp); result+=temp; } return result;}int main(){ Sqstack S; int n; InitSqstack(&S); printf("请输入n的值:\n"); scanf("%d",&n); double result=Recursion(&S,n); printf("结果为:%lf\n",result); return 0;}
0 0
- 非递归实现(栈方法):1 + 1/2 - 1/3 + 1/4 - 1/5.......
- 汉诺塔 递归与非递归实现 (1)
- 3n+1问题递归和非递归实现...
- 1!+2!+...+N!的递归和非递归实现
- 求 1!+2!+3!....+n! 的 C++递归与非递归实现
- 0-1背包问题递归和非递归实现
- 0-1背包问题递归与非递归实现
- 用递归方法和非递归方法分别打印出以下信息。1、1、2、3、5、8、13、21
- 0-1背包问题的递归实现与非递归实现
- 简单的[0/1]背包问题 分别用递归与非递归实现
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
- Eclipse ADT插件和Android SDK使用离线包升级笔记
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- 源码编译安装Infobright(Bright House)
- 安卓数据持久化:文件存储、SharedPreferences存储以及数据库存储
- 关于Android SDK使用离线包更新的说明
- 非递归实现(栈方法):1 + 1/2 - 1/3 + 1/4 - 1/5.......
- awk命令详解
- Delphi框架、类库和实用资源集合 Awesome Delphi
- Pseudo-random algorithm: prd and rsa based
- 数据结构 ——连续存储数组的算法
- Handler、Looper消息传递机制-----浅析
- 详解协方差与协方差矩阵
- 二叉树的三种遍历方法(递归)
- 关于指针定义的一些问题