氣泡排序的應用 6174問題

2021-09-02 18:13:21 字數 656 閱讀 2565

氣泡排序的應用——6174問題

輸入乙個n位數,把所有數字從大到小排序後得到a,從小到大排序得到b,用a-b替換原來的數,並繼續操作,直到出現迴圈,即新得到的數曾經得到過。如:初始為1234,依次可得4321-1234=3087、8730-378=8352、8352-2358=6174、而7641-1267=6174,即回到本身。

int get_number(int x)

sscanf(p, "%d", &b);

//反轉即倒序輸出

for (int i = 0; i < n / 2; i++)

sscanf(p, "%d", &a);

return a - b;

}

逐一生成各個數,並判斷是否生成過,這裡我們使用最常用的陣列進行儲存,**如下:

int num[2000], count;

int main()

} //若找到,退出迴圈

if (found)

break;

count++;

} printf("\n");

return 0;

}

氣泡排序一直由於其簡潔的思想方法而倍受青睞,但也有其不足,這就需要我們對演算法進行優化,以後會更新的哦&&&

演算法學習之氣泡排序,6174問題

排序與檢索 資料處理是計算機的強項,包括排序 檢索和統計等。6174問題 假設你有乙個各位數字互不相同的四位數,把所有數字從大到小排序後得到a,從小到大排序後得到b,然後a b替換原來這個數,最終都會得到6174。例如,從1234出發,依次可以得到4321 1234 3087,8730 378 83...

演算法學習之氣泡排序,6174問題

排序與檢索 資料處理是計算機的強項,包括排序 檢索和統計等。6174問題 假設你有乙個各位數字互不相同的四位數,把所有數字從大到小排序後得到a,從小到大排序後得到b,然後a b替換原來這個數,最終都會得到6174。例如,從1234出發,依次可以得到4321 1234 3087,8730 378 83...

氣泡排序問題理解

氣泡排序問題 程式實現方法 用兩層迴圈完成演算法,外層迴圈i控制每輪要進行多少次的比較,第一輪比較n 1次,第二輪比較n 2次,最後一輪比較一次。內層迴圈j控制每輪i次比較相鄰兩個元素是否逆序,若逆序就交換這兩個元素。例如有6個元素需要排序 6 5 3 4 1 2 第一輪排序,比較5次,結束後,6到...