氣泡排序的應用——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到...