nyoj 57 6174問題 相鄰元素判斷問題

2022-05-07 21:18:09 字數 1399 閱讀 6819

記憶體限制:64mb

時間限制:1000ms

special judge: no

accepted:16

submit:31

假設你有乙個各位數字互不相同的四位數,把所有的數字從大到小排序後得到a,從小到大後得到b,然後用a-b替換原來這個數,並且繼續操作。例如,從1234出發,依次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174,又回到了它自己!現在要你寫乙個程式來判斷乙個四位數經過多少次這樣的操作能出現迴圈,並且求出操作的次數

比如輸入1234執行順序是1234->3087->8352->6174->6174,輸出是4

第一行輸入n,代表有n組測試資料。

接下來n行每行都寫乙個各位數字互不相同的四位數

經過多少次上面描述的操作才能出現迴圈

複製

1

1234

4

分析:1、需要注意的是,要將上一步的結果存起來和下一步進行比較

核心**:

1

while(my_now !=my_next)

211 sort(a, a+4

);12

int a = a[0] + a[1] * 10 + a[2] * 100 + a[3] * 1000; //

a -- max

13int b = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3]; //

b -- min

14 my_next = a -b;

15 }

c/c++**實現(ac):

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 

1011

using

namespace

std;

1213

intmain()

1433 sort(a, a + 4

);34

int a = a[0] + a[1] * 10 + a[2] * 100 + a[3] * 1000; //

a -- max

35int b = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3]; //

b -- min

36 my_next = a -b;37}

38 printf("

%d\n

",cnt);39}

40return0;

41 }

NYOJ 題目57 6174問題

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 假設你有乙個各位數字互不相同的四位數,把所有的數字從大到小排序後得到a,從小到大後得到b,然後用a b替換原來這個數,並且繼續操作。例如,從1234出發,依次可以得到4321 1234 3087 8730 378 8352 85...

題目57 6174問題

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 數字中有乙個非常神奇的數字 6174,假設你有乙個各位數字互不相同的四位數,把所有的數字從大到小排序後得到a,從小到大後得到b,然後用a b替換原來這個數,並且繼續操作。例如,從1234出發,依次可以得到4321 1234 30...

南陽理工57 6174問題

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述假設你有乙個各位數字互不相同的四位數,把所有的數字從大到小排序後得到a,從小到大後得到b,然後用a b替換原來這個數,並且繼續操作。例如,從1234出發,依次可以得到4321 1234 3087 8730 378 8352 853...