ZZULIOJ 1110: 最近共同祖先(函数专题)
生活随笔
收集整理的這篇文章主要介紹了
ZZULIOJ 1110: 最近共同祖先(函数专题)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最近共同祖先(函數(shù)專題)
如上圖所示,由正整數(shù)1, 2, 3, …組成了一棵無限大的二叉樹。從某一個結(jié)點到根結(jié)
點(編號是1 的結(jié)點)都有一條唯一的路徑,比如從10 到根結(jié)點的路徑是(10, 5, 2, 1),
從4 到根結(jié)點的路徑是(4, 2, 1),從該結(jié)點到根結(jié)點的路徑上的所有結(jié)點稱為該結(jié)點的祖先。現(xiàn)在的問題就是,給定x 和y,求x和y的最近共同祖先,比如,10和4最近共同祖先是2,10和5的最近共同祖先是5。
定義遞歸函數(shù)
int common(int x, int y)
{
如果x==y, return x;
如果x>y,求x/2與y的共同祖先;
否則,求x與y/2的共同祖先;
}
輸入
輸入只有一行,包括兩個正整數(shù)x 和y,這兩個正整數(shù)都不大于1000。
輸出
輸出只有一個正整數(shù),即x和y的最近共同祖先。
樣例輸入 Copy
10 4
樣例輸出 Copy
2
#include<stdio.h> int common(int x,int y) {if(x==y)return x;if(x>y)return common(x/2,y);return common(x,y/2); } int main() {int m,n;scanf("%d%d",&m,&n);printf("%d\n",common(m,n));return 0; }
總結(jié)
以上是生活随笔為你收集整理的ZZULIOJ 1110: 最近共同祖先(函数专题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql数据库后台命令备份_使用MyS
- 下一篇: linux 上传网页文件大小,Linux