演算法提高 數字黑洞
任意乙個四位數,只要它們各個位上的數字是不全相同的,就有這樣的規律:
1)將組成該四位數的四個數字由大到小排列,形成由這四個數字構成的最大的四位數;
2)將組成該四位數的四個數字由小到大排列,形成由這四個數字構成的最小的四位數(如果四個數中含有0,則得到的數不足四位);
3)求兩個數的差,得到乙個新的四位數(高位零保留)。
重複以上過程,最後一定會得到的結果是6174。
比如:4312 3087 8352 6174,經過三次變換,得到6174
乙個四位整數,輸入保證四位數字不全相同
乙個整數,表示這個數字經過多少次變換能得到6174
在這裡給出一組輸入。例如:
4312
在這裡給出相應的輸出。例如:
3
這道題目主要點在型別轉換,int轉string用字元流比較方便,也可用to_string(但是這個方法我在藍橋杯練題的系統上使用是不支援的),string轉int用stoi()函式,字串排序用sort即可。
#include
#include
#include
#include
using
namespace std;
bool
cmp(
char a,
char b)
//從大到小排序(因為sort預設是從小到大)
intfunc
(int n)
intmain()
cout << cnt;
return0;
}
演算法提高 數字黑洞
藍橋杯比賽試用平台 時間限制 1 sec 記憶體限制 128 mb 提交 1 解決 1 提交 狀態 討論版 任意乙個四位數,只要它們各個位上的數字是不全相同的,就有這樣的規律 1 將組成該四位數的四個數字由大到小排列,形成由這四個數字構成的最大的四位數 2 將組成該四位數的四個數字由小到大排列,形成...
演算法提高 數字黑洞
問題描述 任意乙個四位數,只要它們各個位上的數字是不全相同的,就有這樣的規律 1 將組成該四位數的四個數字由大到小排列,形成由這四個數字構成的最大的四位數 2 將組成該四位數的四個數字由小到大排列,形成由這四個數字構成的最小的四位數 如果四個數中含有0,則得到的數不足四位 3 求兩個數的差,得到乙個...
ADV 170 演算法提高 數字黑洞
問題描述 任意乙個四位數,只要它們各個位上的數字是不全相同的,就有這樣的規律 1 將組成該四位數的四個數字由大到小排列,形成由這四個數字構成的最大的四位數 2 將組成該四位數的四個數字由小到大排列,形成由這四個數字構成的最小的四位數 如果四個數中含有0,則得到的數不足四位 3 求兩個數的差,得到乙個...