为防止递归递推时栈溢出
来源:互联网 发布:关系型数据库基本特征 编辑:程序博客网 时间:2024/06/07 09:07
一:pow,曾经用递归溢出
void _pow(int a,int b){ while(b){ if(b%2&1) { ans*a;b--;ans=ans*pow(pos(a,b/2),2);} else ans=ans*pow(pos(a,b/2),2); }}
改后——>void _pow(int a,int b){ ans=1; while(b){ if(b%2&1) { ans*=a;b--;} else { b/=2;a*=a;} }}
二:(hdu1032)为了记忆话递归溢出:
void _find(int v){ if(v==1) { dp[v]=0; return ; } if(v&1) { v=3*v+1; _find(v); if((v-1)/3<1000010) dp[(v-1)/3]=dp[v]+1; } else { v/=2; _find(v); if(v*2<1000010) dp[v*2]=dp[v]+1; }}
----->改后,虽然没有记忆话,但是至少没有溢出:
void _find(int v){ int count=1; int t=v; while(v!=1){ if(v&1) v=3*v+1; else v/=2; count++; } dp[t]=count;}
阅读全文
0 0
- 为防止递归递推时栈溢出
- 用循环代替递归防止栈溢出
- JavaScript---防止递归栈溢出错误
- 如何利用循环代替递归以防止栈溢出(译)
- 如何利用循环代替递归以防止栈溢出(译)
- 防止溢出类攻击
- 防止溢出的stringsprintf
- 防止缓冲区溢出
- 防止缓冲区溢出
- Android防止内容溢出
- 防止内存溢出浅析
- TweenLite防止内存溢出
- 防止缓冲区溢出
- 递归函数溢出---尾递归
- 递归导致内存溢出
- 递归算法堆栈溢出
- 安全编程: 防止缓冲区溢出
- 安全编程: 防止缓冲区溢出
- Shell编程最基本的代码
- Android开发——数据库框架Suger遇到的大坑(依据列名查询不到数据解决办法)
- 20170916Hive学习总结
- 使用ajax实现登录业务
- NOIP2016天天爱跑步 题解报告【lca+树上统计(桶)】
- 为防止递归递推时栈溢出
- eclipse创建MAVEN项目是出现Could not resolve archetype的解决办法
- java类与对象,方法
- [BZOJ1941][SDOI2010]Hide and Seek(线段树)
- C++成员变量的初始化顺序问题
- malloc/free 和 new/delete 区别
- Hadoop最简单的介绍
- 进程和线程的区别
- 设计模式之单例模式