排序與檢索
資料處理是計算機的強項,包括排序、檢索和統計等。
6174問題
假設你有乙個各位數字互不相同的四位數,把所有數字從大到小排序後得到a,從小到大排序後得到b,然後a-b替換原來這個數,
最終都會得到6174。
例如,從1234出發,依次可以得到4321-1234=3087,8730-378=8352,8532-2358=6174。有趣的是,7641-1467=6174回到了它自己。
輸入乙個n位數,輸出操作序列,直到出現迴圈。
樣例輸入:1234
樣例輸出:1234->3087->8352->6174->6174
分析:兩個問題擺在我們面前:如何得到下乙個數?
如何檢查這個數是否已經出現過?
一一解決。
「氣泡排序」
#include #include#include
int get_next(int
x) }
}sscanf(s,"%d
",&b);
//字串反轉
for(int i=0;i2;i++)
sscanf(s,"%d
",&a);
return a -b;}//
逐個生成各個數
int num[2000
],count;
intmain()
} if(found)
count++;
}printf("\n
");getch();
return0;
}
氣泡排序
#include #include#include
int bubble_sort(int
x) }
}sscanf(s,"%d
",&r);
return
r;
}int
main()
演算法學習之氣泡排序,6174問題
排序與檢索 資料處理是計算機的強項,包括排序 檢索和統計等。6174問題 假設你有乙個各位數字互不相同的四位數,把所有數字從大到小排序後得到a,從小到大排序後得到b,然後a b替換原來這個數,最終都會得到6174。例如,從1234出發,依次可以得到4321 1234 3087,8730 378 83...
演算法學習之氣泡排序
基本思想 陣列 6,5,7,3,8,2 按從公升序排列。依次比較相鄰的兩個數,前乙個數比後乙個數大則交換位置,得到最大的數在最後。第一輪比較完後的結果為 5,6,3,7,2,8 第二輪比較得出倒數第二的數字 5,3,6,2,7,8 依次類推 package com.example.demo.othe...
演算法學習之氣泡排序
氣泡排序 bubblesort 迴圈遍歷要排序的元素,依次比較相鄰的兩個元素,如果他們的順序錯誤就把他們交換位置。每一次迴圈遍歷,直到陣列的末尾。因為越大的元素會經過交換到陣列的前端 公升序或降序排列 整個過程就像氣泡最終會上浮到頂端一樣,稱之為 氣泡排序 原理步驟 1 比較相鄰的兩個元素。如果第乙...