都是數字的問題,雖然本題要的是4位數字,但是並沒有明確指出要輸入乙個4位數,所以可能我們直接做就是考慮輸入4位數,但是也要考慮其他。輸入的不是要補0的,我寫的**不用在輸入第乙個數時補0,因為直接求的是四個數。但是你輸出的時候不一定是4位,所以要補0,我的方法是直接輸出排序後的四位數,因為0已結在這4個數里了,比如你輸入2300,當輸出的時候就是3200-0023;這個題到處是坑,也許是我還不夠大佬吧。輸出式子前面的兩個數要注意補0,等號後的也要注意。
這個就是輸入6174的時候,應該輸出7641 - 1467 = 6174。所以就直接設個if就成。(注意不要像我一樣把數字寫倒)
或許輸入0的時候不是個點吧,我試了一下,不管你輸出0000 - 0000 = 0000還是0 - 0 = 0000,都是滿分。
**:
#include
#include
intmain()
else
if(n==
6174
)else}if
(max!=j)
} qian=a[3]
*1000
+a[2]*
100+a[1]
*10+a[0];
hou=a[0]
*1000
+a[1]*
100+a[2]
*10+a[3];
n=qian-hou;
b[0]
=n/1000
; b[1]
=(n-
1000
*b[0])
/100
; b[2]
=(n-
1000
*b[0]-
100*b[1]
)/10;
b[3]
=n%10
;printf
("%d%d%d%d - %d%d%d%d = %d%d%d%d\n"
,a[3
],a[2]
,a[1
],a[0]
,a[0
],a[1]
,a[2
],a[3]
,b[0
],b[1]
,b[2
],b[3]
);}}
}
1019 數字黑洞
給定任乙個各位數字不完全相同的4位正整數,如果我們先把4個數字按非遞增排序,再按非遞減排序,然後用第1個數字減第2個數字,將得到乙個新的數字。一直重複這樣做,我們很快會停在有 數字黑洞 之稱的6174,這個神奇的數字也叫kaprekar常數。例如,我們從6767開始,將得到 7766 6677 10...
1019 數字黑洞
1019.數字黑洞 給定任乙個各位數字不完全相同的4位正整數,如果我們先把4個數字按非遞增排序,再按非遞減排序,然後用第1個數字減第2個數字,將得到乙個新的數字。一直重複這樣做,我們很快會停在有 數字黑洞 之稱的6174,這個神奇的數字也叫kaprekar常數。例如,我們從6767開始,將得到 77...
1019 數字黑洞
時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 給定任乙個各位數字不完全相同的4位正整數,如果我們先把4個數字按非遞增排序,再按非遞減排序,然後用第1個數字減第2個數字,將得到乙個新的數字。一直重複這樣做,我們很快會停...