完全2叉树 小球下落 非模拟方法
2011-07-18 20:11
260 查看
#include<iostream> #include<vector> #include<cmath> using std::vector; using std::cin; using std::cout; using std::endl; int main() { int iHeight = 0; int iBallNum = 0; long iNodeNum = 0; int iCurIndex = 1; while(cin>>iHeight && cin>>iBallNum) { iNodeNum = static_cast<long>(pow(2.0,iHeight) - 1); iCurIndex = 1; long lCurNodeBallNum = iBallNum - 1;//倒数第二次的开关状态,决定最后一次落向 for(int iLayer = 1; iLayer != iHeight; iLayer++) { if(lCurNodeBallNum % 2 ==0)// 该节点球落了iBallNum次,开关应该是初始状态关闭。左边孩子 { iCurIndex = iCurIndex * 2; lCurNodeBallNum = lCurNodeBallNum / 2; //落在左孩子上面球的次数 } else //open { iCurIndex = iCurIndex * 2 + 1; //落在右边孩子上面的球次数 lCurNodeBallNum = lCurNodeBallNum / 2; } } cout<<iCurIndex<<endl; } return 0; }
相关文章推荐
- 08.JAVA小程序—模拟小球下落
- uva 122 小球下落 树的模拟
- php模拟登陆的实现方法分析
- 二叉树:小球下落
- php模拟登陆的两种实现方法分析
- 二叉树 小球下落问题
- php自定义类fsocket模拟post或get请求的方法
- 使用 selenium 模拟 鼠标悬浮 在目标元素上的方法
- curl 模拟POST方法 发送数据
- uva-679 小球下落
- 用能看的懂的方法模拟约瑟夫环
- 二叉树 小球下落 优化算法
- 模拟ANGULAR 的一个cacheFactory方法
- 小球下落(二叉树)
- java面试题---模拟String类中的trim()方法(去掉首尾的空格符)
- Java——模拟trim方法,与字符串反转
- C# HttpWebRequest保存cookies模拟登录的方法【z】【解决】
- 一种动态模拟示波器数据的方法
- java用数组模拟实现ArrayList以及一些常用方法实现
- 在C++中模拟委托事件的方法(四)