假設你有乙個各位數字互不相同的四位數,把所有數字從大到小排序後得到a,從小到大排序後得到b,然後用a-b替換原來這個數,並且繼續操作。例如,從1234出發,依次可以得到4321-1234=3087,8370-378=8352,8352-2358=6174,有趣的是,7641-1467=6174,回到了他自己。
輸入乙個n位數,輸出操作序列,直到出現迴圈(即新得到的數曾經得到過)。輸入保證在迴圈之前最多隻會產生1000個數。
樣例輸入:1234
樣例輸出:1234->3087->8352->6174->6174
sscanf(s,"%d",x);作用是將數字轉化為字串
sscanf(s,"%d",&x);作用是將字串轉化為數字。
#include #include int num[2000],count;
int get_next(int x)}}
sscanf(s,"%d",&b);
//字串反轉
for(i=0;i%d",num[count]);
//在陣列num中尋找新生成的數
found=0;
for(i=0;i
演算法競賽入門經典 第五章6174問題
include include int get next int x sscanf s,d b 輸出氣泡排序拍好的由小到大的數 for int i 0 i n 2 i 輸出由大到小的數 sscanf s,d a sscanf在這裡承擔格式轉換功能 return a b int num 2000 co...
演算法競賽入門經典第五章
例 5.1.3 週期串 fgets str,max,stdin scanf s str fgets 函式執行後,str會讀到 n 符號停下,也就是提取一行,n 也被讀進字串,因此strlen str 會比原本輸入的字串多乙個 除了一種很特殊的情況,讀入一行時,只一行並不是以 n 結束,而是以eof結...
演算法競賽入門經典 第五章錯位輸出
include char s 1234567890 qwertyuiop asdfghjkl zxcvbnm,int main return 0 記錄下標還可以當條件滿足的時候退出,這樣迴圈變數就一定是符合要求d 的下標值 要是我我會這麼寫 include char s 1234567890 qwe...