小猴子下落
时间限制:3000 ms | 内存限制:65535 KB 难度:3- 描述
-
有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从左到右从上到下的编号为1,2,3,?????,2的D次方减1。在结点1处放一个小猴子,它会往下跑。每个内结点上都有一个开关,初始全部关闭,当每次有小猴子跑到一个开关上时,它的状态都会改变,当到达一个内结点时,如果开关关闭,小猴子往左走,否则往右走,直到走到叶子结点。
一些小猴子从结点1处开始往下跑,最后一个小猴儿会跑到哪里呢?
- 输入
- 输入二叉树叶子的深度D,和小猴子数目I,假设I不超过整棵树的叶子个数,D<=20.最终以 0 0 结尾
- 输出
- 输出第I个小猴子所在的叶子编号。
- 样例输入
-
4 2 3 4 0 0
- 样例输出
-
12 7
-
# include# include # define TRUE 1 int i; int fact(int i, int n,int *a) { if (2*i > n && 2*i +1 > n) { return i; } else { if (a[i] == 0 ) { a[i] = 1; i = 2*i; } else { a[i] = 0; i = 2*i +1; } fact(i,n, a); } } int main(void) { int n,m,s; while (scanf("%d%d", &n,&m) && (n != 0 || m != 0)) { int a[100000] = {0}; while (m--) { s = fact(1,pow(2,n) - 1,a); } printf("%d\n", s); } return 0; } -
本人不才,只想到用递归解题,看下面大神的代码
-
#include02.usingnamespacestd;03.04.intmain()05.{06.intd,i,k;07.while(cin>>d>>i && (d+i) !=0)08.{09.k=1;10.for(intj=0;j11.if(i%2) {k=k*2;i=(i+1)/2;}12.else{k=k*2+1;i /=2;}13.cout<14.15.}16.}复制去Google翻译翻译结果
<script type="text/java script">- <script type="text/java script">BAIDU_CLB_fillSlot("771048");
-
点击复制链接 与好友分享!
回本站首页
<script>
function copyToClipBoard(){
var clipBoardContent=document.title + '\r\n' + document.location;
clipBoardContent+='\r\n';
window.clipboardData.setData("Text",clipBoardContent);
alert("恭喜您!复制成功");
}
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"24"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)]; - 您对本文章有什么意见或着疑问吗?请到 论坛讨论您的关注和建议是我们前行的参考和动力??
-
相关文章
-
<script type="text/java script">BAIDU_CLB_fillSlot("182716");
-
<script type="text/java script">BAIDU_CLB_fillSlot("517916");
-
图文推荐
<iframe src="http://www.2cto.com/uapi.php?tid=351872&catid=339&title=TllPSjYz0KG679fTz8LC5A==&forward=http://www.2cto.com/kf/201411/351872.html" width="100%" height="100%" id="comment_iframe" name="comment_iframe" frameborder="0" scrolling="no">
-
<script type="text/java script">BAIDU_CLB_fillSlot("771057");



