1213: 二叉树结点公共祖先
Time Limit: 1 Sec Memory Limit: 128 MB Submit: 159 Solved: 87 [Submit][Status][Web Board]
Description
一个顺序存储的完全二叉树:
1
/ \
2 3
/ \ / \
4 5 6 7
...
任意给定两结点的编号,求两结点最近的公共祖先。
Input
每组数据一行,为空格隔开的两个数i和j,皆为32位有符号正整数
Output
每组数据对应一行,为编号为i和j的结点的最近公共祖先的编号
Sample Input
4 5
4 7
Sample Output
2
1
#include<stdio.h> int main()
{
int n,m;
while(scanf("%d%d",&n,&m)>)
{
if(n==m)
{
printf("%d\n",n);
continue;
}
while(n!=m)
{
if(n>m) n=n/;
else m=m/;
}
printf("%d\n",n);
}
return ;
}