列印子串行 全排列以及母牛問題

2021-10-01 12:47:33 字數 798 閱讀 1912

列印所有子串行

子串行:子串行不要求所選的字母連續,只要求是按原有次序組成就行

void

printallsub

(string source,

int index, string res)

printallsub

(source, index +

1, res + source[index]);

printallsub

(source, index +

1, res)

;}

列印字串的全排列

void

printallpermutations

(string str,

int curindex)

// 將該位置之後的每個元素都與當前位置交換

for(

int j = curindex; j < str.

size()

; j++

)}

母牛每年只生乙隻母牛,新出生的母牛成長三年後也能每年生乙隻母牛,假設牛不會死,求n年後,母牛的數量。要求時間複雜度o(n)

int

cownumber1

(int n)

if(n ==

1|| n ==

2|| n ==3)

return

cownumber1

(n -1)

+cownumber1

(n -3)

;}

列印全排列

今天碰到乙個打全排列的問題,仔細研究了一下,用遞迴的思想搞出來了,現在把大概思想貼在下面了 假設要列印的是a,b c d e 很明顯應該採用遞迴,遞迴就得有子問題 列印a,b c d e 的問題可以分解成以下幾個子問題 列印a,列印 b c d e 的全排列 列印b,列印 a c d e 的全排列 ...

全排列列印

全排列的要求 輸入 字串 abc 輸出 如下圖示,思路1 全排列的遞迴實現核心思想 比如對於字串 abc 第一步 求所有可能出現在第乙個位置的字元即 a,b,c。使用方法 把第乙個字元和後面的b c字元進行交換。第二步 把第乙個字元後面的所有字元仍然看成兩部分,即後面的第乙個字元及除此之外的其他字元...

列印全排列

第一次嘗試 define crt secure no warnings include include 在被交換的元素前面序列中,如果出現了這個元素,那麼就不必交換了 intjudge int arr,int i,int k return1 int stringrank int arr,int k,...