資料結構(一)遞迴 中位數

2021-08-22 00:01:18 字數 1829 閱讀 7403

1、從鍵盤輸入求2的n次方

**:

/*編寫程式,求2的n次方 (mod 5) 

n為正整數,由使用者輸入,

對應每個輸入,輸出乙個整數, 求2的n次方 (mod 5)的結果

*/ #includeusing namespace std;

int main()

return count;

}int main()

;struct index_of_firstletter

;offsets move[8] = ;

char graph[maxlen][maxlen] =

;bool test(string str , int t_rows , int t_cols , int d)

str.erase(0 , 1);

} return 1;

}void find(string str , int rows , int cols)

} system("pause");

exit(1);

}int main()

for(int i = 0; i < maxlen; i++)

); }

} }for(int i = 0; i < vs.size(); i++)

return 0;

}

執行://

4、中位數

**:

#include #include #include #include #include #include using namespace std;

void generate_vector(vector& , const long long& );

int main()

}

執行:

5、字串全排列-遞迴

**:

/*

方法一:求字串a的全排列,可以分解為求a的全排列,對於a的每乙個全排列結果,

只要將a[n]插入到a序列的n個位置中,即可得到a的全排列結果。

例如:求abc的全排列,可以先求ab的全排列,再將c插入到第0,1,2位即可得到abc的全排列,

而對於ab的全排列,可以先求a的全排列,再將b插入到第0,1位即可得到ab全排列結果,

因為a是單個字元,它的全排列結果只有乙個:a,所以遞迴開始返回,層層向上,得到abc的全排列的解。

總結:這是基於插入操作的演算法!

方法二:用123來示例下。123的全排列有123、132、213、231、312、321這六種。

首先考慮213和321這二個數是如何得出的。顯然這二個都是123中的1與後面兩數交換得到的。

然後可以將123的第二個數和每三個數交換得到132。同理可以根據213和321來得231和312。

因此可以知道——全排列就是從第乙個數字起每個數分別與它後面的數字交換。

*/#includeusing namespace std;

#include//assert巨集的原型定義在中,其作用是如果它的條件返回錯誤,則終止程式執行

int permutation(char* pstr, char* pbegin)

{ assert(pstr && pbegin);

if(*pbegin == '\0')

cout執行:

位資料結構實現

include 2 3 define n 100000004 define bitsperword 325 define shift 56 define mask 0x1f7 8 int arr 1 n bitsperword 9 10 整個程式的思想就是 11 1.每個整數有32位,那麼它就可以表...

資料 結構 遞迴

遞迴不一定非要像斐波拉契數列一樣在return中呼叫函式 遞迴的結束條件就是初始條件值 通常的方法將遞迴呼叫放在if語句中 n!通過遞迴實現 常用方法還是通過while實現 def jiecheng n if n 0 return 1 else sum n jiecheng n 1 右邊只有階乘表示...

資料結構 遞迴

所謂遞迴,就是在乙個函式,過程,或者資料結構的內部,又直接或間接出現定義本身的應用。在以下三種情況中,常常使用遞迴。比如階乘函式,我們能夠將其分解成幾個小問題來求解,比如求5!我們可以先求4!想求4!先求3!這樣一步步使問題簡化的方法,稱之為分治法。採取分治法求解,需要滿足下面三個條件 1.能夠將乙...