1. 程式人生 > >c語言專案-數字處理

c語言專案-數字處理

#限定UINT8 噸無符號短列舉FilterAction {HIFIRST,LOFIRST}; uint32 t FilterDigits(uint32 _ t N,列舉FilterAction動作,uint8 _ t pivot); int main(){// test data int test _ n [] = {0,54561559,54561559,236246306,236246306,111,111,842,842,58222212,58222212}; 列舉FilterAction test _ action [] = {HIFIRST,LOFIRST,HIFIRST,LOFIRST,HIFIRST,LOFIRST,HIFIRST,LOFIRST,HIFIRST,LOFIRST,HIFIRST}; short test _ pivot [] = {4,9,9,0,0,1,1,5,5,4,4}; for(int i = 0; 我<11; i ++){FilterDigits(test _ n [i],test _ action [i],test _ pivot [i]); } // FilterDigits(N,HIFIRST,pivot);

} uint32 _ t FilterDigits(uint32 _ t N,enum FilterAction action,uint8 _ t pivot){uint32 _ t left = 0; //用於記錄數字應該放在pivot的左邊uint32 _ t right = 0; // //用於記錄數字應該放在pivot的右邊uint32 _ t count = 0; //整數的長度uint32 _ t pivot _ num = 0; //用於記錄數字的大小uint32 _ t pivot _ len = 0; //用於記錄pivot uint32 _ t ans = 0的出現次數; //用於儲存數字的臨時變數uint32 _ t tmp = N; //用於儲存數字的臨時變數uint32 _ t right _ num = 0; //(tmp!= 0){//用於得到整數tmp / = 10的長度; 計數++; }對(INT I =計數 - 1; i> = 0; 我 - ){ans = N /(uint32 _ t)(pow(10,i)); N%=(uint32 _ t的)(POW(10,i))的; if(ans> pivot){if(action == HIFIRST){//如果大於樞軸的munber應該放在左邊= left * 10 + ans; } else {//如果小於樞軸的munber應該放在右邊=右邊* 10 + ans; 對_ num ++; }否則如果(ANS <樞軸){如果(動作== HIFIRST){//如果munber樞軸比更大應該把在左右=右* 10 + ANS; 對_ num ++; } else {//如果小於樞軸的munber應該放在左邊= left * 10 + ans; else {//如果pivot _ num = pivot_ num * 10 + pivot; 樞len ++; }} //計算最終輸出uint32

t的結果=左(uint32 _ t的)(POW(10,右_ num + pivot _ len))+ pivot _ num (uint32 _ t的)(POW(10) ))))))))),右_ num))+右; printf(“%d \ n”,結果); 返回結果; ““