成长轨迹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 }