記憶體限制: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行每行都寫乙個各位數字互不相同的四位數
經過多少次上面描述的操作才能出現迴圈
複製
11234
4分析:1、需要注意的是,要將上一步的結果存起來和下一步進行比較
核心**:
1while(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 #include1011
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...