遞迴 數字黑洞 藍橋杯

2022-08-04 20:57:28 字數 980 閱讀 5816

問題描述

任意乙個四位數,只要它們各個位上的數字是不全相同的,就有這樣的規律:

1)將組成該四位數的四個數字由大到小排列,形成由這四個數字構成的最大的四位數;

2)將組成該四位數的四個數字由小到大排列,形成由這四個數字構成的最小的四位數(如果四個數中含有0,則得到的數不足四位);

3)求兩個數的差,得到乙個新的四位數(高位零保留)。

重複以上過程,最後一定會得到的結果是6174。

比如:4312 3087 8352 6174,經過三次變換,得到6174

輸入格式

乙個四位整數,輸入保證四位數字不全相同

輸出格式

乙個整數,表示這個數字經過多少次變換能得到6174

樣例輸入

4312

樣例輸出

3

(1)非遞迴的辦法

1 #include 2 #include 3

using

namespace

std;

4int ans=0;5

//void dfs()

6int

main()726

cout<<"max "<27

cout<<"min "<*/

28 a=m-n;

29 ans++;

30//

cout<<"jia wei e"<31

}32 cout<33return0;

34 }

(2)遞迴的辦法

1 #include 2 #include 3

using

namespace

std;

4int ans=0;5

int b[4];6

void dfs(inta)7

13else

2526}27

intmain()

28

藍橋杯 數字黑洞 遞迴解法

任意乙個四位數,只要它們各個位上的數字是不全相同的,就有這樣的規律 1 將組成該四位數的四個數字由大到小排列,形成由這四個數字構成的最大的四位數 2 將組成該四位數的四個數字由小到大排列,形成由這四個數字構成的最小的四位數 如果四個數中含有0,則得到的數不足四位 3 求兩個數的差,得到乙個新的四位數...

藍橋杯 數字黑洞

問題描述 任意乙個四位數,只要它們各個位上的數字是不全相同的,就有這樣的規律 1 將組成該四位數的四個數字由大到小排列,形成由這四個數字構成的最大的四位數 2 將組成該四位數的四個數字由小到大排列,形成由這四個數字構成的最小的四位數 如果四個數中含有0,則得到的數不足四位 3 求兩個數的差,得到乙個...

藍橋杯 演算法提高VIP 數字黑洞

題目描述 任意乙個四位數,只要它們各個位上的數字是不全相同的,就有這樣的規律 1 將組成該四位數的四個數字由大到小排列,形成由這四個數字構成的最大的四位數 2 將組成該四位數的四個數字由小到大排列,形成由這四個數字構成的最小的四位數 如果四個數中含有0,則得到的數不足四位 3 求兩個數的差,得到乙個...