演算法提高 數字黑洞

2021-07-26 07:01:43 字數 848 閱讀 1464

藍橋杯比賽試用平台

時間限制: 1 sec  記憶體限制: 128 mb

提交: 1  解決: 1 [

提交][

狀態][

討論版]

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

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

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

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

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

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

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

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

4312
3

#include#include#include#include#includeusing namespace std;

int change(int n)

,i=0,max=0,min=0,j=0;

while(n)

sort(a,a+4);

for(j=0;j<4;j++)

min=a[j]+min*10;

for(j=3;j>=0;j--)

max=a[j]+max*10;

return max-min;

}int main()

{ int n,temp,sum=0;

cin>>n;

while(n!=6174)

{ //cout<

演算法提高 數字黑洞

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

演算法提高 數字黑洞

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

ADV 170 演算法提高 數字黑洞

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