成长轨迹60 【ACM算法之路 百炼poj.grids.cn】【递归】【2756:二叉树】


http://poj.grids.cn/practice/2756/
【wa代码】

 1 #include <stdio.h>
2
3 int deal(int a,int b)
4 {
5 if(a/2==b/2)
6 return a/2;
7 else if(a/2 > b/2)
8 return deal(a/2,b);
9 return deal(a,b/2);
10 }
11
12 int main()
13 {
14 int a,b;
15 scanf("%d %d",&a,&b);
16 printf("%d\n",deal(a,b));
17 return 0;
18 }

 

 

这样如果输入两个相同的结点的话,会输出它们的上一个结点而不是他们本身
【ac代码】

 1 #include <stdio.h>
2
3 int deal(int a,int b)
4 {
5 if(a==b)
6 return a;
7 else if(a > b)
8 return deal(a/2,b);
9 return deal(a,b/2);
10 }
11
12 int main()
13 {
14 int a,b;
15 scanf("%d %d",&a,&b);
16 printf("%d\n",deal(a,b));
17 return 0;
18 }

 

posted @ 2012-03-12 23:40  MooreZHENG  阅读(259)  评论(0编辑  收藏  举报