劍指offer面試題11

2021-06-22 04:53:27 字數 1166 閱讀 1778

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

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

思路:首先應該明確指數的可能取值:正整數,0,負整數;另外還需要考慮底數是0的情形。對於負整指數,我們可以想對指數求絕對值,然後算出次方的結果再取倒數。

**:

#include "stdafx.h"

#include bool g_invalidinput = false;

bool equal(double num1, double num2);

double powerwithunsignedexponent(double base, unsigned int exponent);

double power(double base, int exponent)

unsigned int ab***ponent = (unsigned int)(exponent); //正數

if(exponent < 0)

ab***ponent = (unsigned int)(-exponent); //轉換為正數

double result = powerwithunsignedexponent(base, ab***ponent);

if(exponent < 0)

result = 1.0 / result; //求倒

return result;}

/*double powerwithunsignedexponent(double base, unsigned int exponent)

*/double powerwithunsignedexponent(double base, unsigned int exponent)

bool equal(double num1, double num2)

// ********************測試**********************

void test(double base, int exponent, double expectedresult, bool expectedflag)

int _tmain(int argc, _tchar* argv)

《劍指offer》面試題11 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。這個題目的題意其實非常簡單,最開始我們的鍊錶的指向是這樣的 將其改變反向,變成如下所示的方向即可 可以看到最開始我們的表頭指向了none,然後表尾卻指向了倒數第二個鍊錶,中間的鍊錶指向全部反向,這也就是這個題目要讓我們幹的事情。那麼我們如何實現這個鍊錶的反...

劍指offer面試題7

面試題7 用兩個棧實現佇列 using namespace std template class cqueue 預備知識 佇列 佇列也是一種常見的資料結構 特點是先進先出 fifo 在stl中有stack和queue兩個容器 template class stack 成員函式 empty size ...

劍指offer面試題15

面試題15 鍊錶中倒數第k個結點 題目 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾結點是倒數第乙個結點。例如乙個鍊錶有6個結點,從頭結點開始它們的值依次是1 2 3 4 5 6。這個鍊錶的倒數第3個結點是值為4的結點。預備知識 鍊錶結點的定義如下 ...