劍指offer第二版 面試題16(java)

2021-09-13 16:41:26 字數 924 閱讀 5079

面試題16:數值的整數次方

題目:

實現函式power(double base, int exponent),求base的exponent次方。不能使用庫函式,同時不需要考慮大數問題

需要考慮的問題:

次方為正、負、0;輸入為0

次方為正時,直接計算;次方為負時,先計算正的次方數,再求倒數;如果輸入為0,次方為負——異常處理

先考慮base,再考慮exponent 

public class q16 

public static double power(double base,int exponent)

// base = 0 且為求正次方

if(base == 0 )

// 0次方返回1

if(exponent == 0)

// 1次方返回原數

if(exponent == 1)

if(exponent>0) else

return result; }

// base!=0

public static double unsignpow(double base,int exponent)

if(exponent == 1)

double result = unsignpow(base,exponent>>1);

// 偶數,則自己乘自己 如2^8 = 2^4 * 2^4

result = result * result;

// 奇數,則需要乘base 如 2^7 = 2^3 * 2^3 * 2

if((exponent & 0x1) ==1)

return result;

}}

劍指offer第二版 面試題6(java)

面試題6 從尾到頭列印鍊錶 題目 輸入乙個鍊錶的頭結點,從尾到頭反過來列印出每個結點的值 鍊錶的結點定義如下 public class listnode 注意 面試中,如果打算修改輸入的資料,最好先問好是否資料是允許修改的 思路 1.遍歷順序從頭到尾,列印順序從尾到頭,第乙個結點最開始被訪問,但是最...

劍指offer第二版 面試題8 java

題目描述 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標 分析 情況 一 有右子樹,這時只需要把其右孩子作為下乙個遍歷的 並不是要找的 節點,然後沿著該節點的左子樹 如果有的話 出發,直到遇到葉子節點,那麼該葉子節...

劍指offer第二版 面試題9(java)

面試題9 用兩個棧實現佇列 題目描述 方法 兩個棧 stack1 stack2 插入時,直接放入stack1 刪除時,直接彈出pop2中的物件 如果pop2為空,則先將pop1中的物件放入stack2中,再從stack2裡pop第乙個 如 依次放入stack1中1 2 3,在彈出並放入stack2中...