版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、摘要卡布列克運(yùn)算是指給定任意一個四位整數(shù) N(N>0),其各位數(shù)字不完全相同。這個 數(shù)必有這樣的規(guī)律:1)把組成N的四個數(shù)字從小到大排列,構(gòu)成最小四位數(shù)min; 2)把組成N的四個數(shù)字從大到小排列,構(gòu)成最大四位數(shù)max 3)然后求max與min之差,得到一個新的四位數(shù) ; 把新的四位數(shù)重復(fù)以上過程,最后總能得到結(jié)果: 6174該驗(yàn)證過程采用面向?qū)ο蠓椒ǎ?將數(shù)學(xué)和編程相結(jié)合, 再通過構(gòu)建對象數(shù)組來完成。 關(guān)鍵詞:卡不列克運(yùn)算、驗(yàn)證、面向?qū)ο?、對象?shù)組2設(shè)計方案2.1整體設(shè)計方案如下:輸入(1個4位數(shù))»»檢查輸入獲取各個數(shù)位并排序驗(yàn)證過程生成最小四位數(shù) min最大四位
2、數(shù) maxmax與min之差重復(fù)以上流程直到結(jié)果為61742.1.1輸入檢查輸入要求各位不完全相同的4位數(shù)boolkabulek :isAcceptable(intn)if ( n < 1000) returnfalse ;if ( n >= 10000) returnfalse ;int arr4;for (int i = 0;i != 4;i+)arri =n % 10;n /= 10;for ( int i = 0;i != 3;i+)for (int j = i + 1;j != 4;j+)獲取各個數(shù)位并排序相關(guān)頭文件cstdlib.hkabulek.hvoid kabul
3、ek :setsort( intn)for (int i = 0;i != 4;i+) nnnni =n % 10;n /= 10;std:sort (nnnn, nnnn + 4);生成最小四位數(shù) min最大四位數(shù)maxint kabulek :minForm()int n = 0;for (int i = 0;i != 4;i+)n *= 10;n += nnnn i;return n;int kabulek :maxForm()int n=0;for ( int i = 3;i >= 0;i-)n *= 10;n += nnnn i;return n;驗(yàn)證過程void kabule
4、k:showStep( int n)std:cout << maxForm() <<"-"<<std:setw<<std:setfill( '0')<<minForm() <<"=" <<n <<std:endl;void kabulek :verify。if (hasAccepted= false ) std:cout<<"未接受數(shù)字! !" << std:endl;return ;=std:cou
5、t << "num:" <<num << std:endl;this ->setsort(num);int n = maxForm() - minForm();this ->showStep(n);while (n!=6174)this ->setsort(n);n = maxForm() - minForm();this ->showStep(n);std:cout << "檢驗(yàn)完畢"<<std:endl;2.1.2驗(yàn)證過程void main()int count =
6、0;kabulek k10000;/建立對象數(shù)組for (int i = 1;i != 10000;i+)ki.setNum(i);ki.verify();return ;3.程序演示:SBC:Windowssystem32cmd.ex e請按任意鍵繼續(xù)C:Windowssystem32cmd.exe7443'3447=39963963-3699=62646642-2466=41767641-1467=6174檢驗(yàn)完畢1027請按任意鍵繼續(xù)num:10277210-0127=70838730-0378=83528532-2358=6174檢驗(yàn)完畢1028請按任意鍵繼續(xù)-num:1028
7、8210-0128=80823820-828»8532B532-2358=6174檢驗(yàn)完畢1029倩按5負(fù)鍵吐垃結(jié)論無論學(xué)習(xí)什么,親自動手去做了才能得到最深刻的體會。附錄代碼kabulek.h#pragma onceclass kabulek/要驗(yàn)證的數(shù)字int num;/十進(jìn)制位int nnnn4;/是否接受到一個符合要求的數(shù)字bool hasAccepted;public :默認(rèn)構(gòu)造函數(shù)kabulek();kabulek( int );kabulek();/驗(yàn)證void verify();/靜態(tài)函數(shù)isAcceptabble判斷是否符合要求static bool isAccept
8、able( int );/num settervoid setNum( int n);private :/構(gòu)成最小四位數(shù)int mi nF orm();/構(gòu)成最大四位數(shù)int maxForm();/求取一個4位數(shù)的各位并排序void setsort( int n);/輸出驗(yàn)證的每一次步驟void showStep( int );kabulek.cpp#i nclude "kabulek.h" #includealgorithm #inelude <iostream> #inelude <iomanip>void kabulek:setsort( in
9、tn)for ( inti = 0;i != 4;i+) nnnn i=n % 10;n /= 10;std:sort (nnnn, nnnn + 4);kabulek :kabulek()hasAccepted = false ;kabulek :kabulek( int n):num( n)hasAccepted = isAcceptable( n);if (!hasAccepted) return ;this ->setsort( n);kabulek :kabulek()void kabulek:showStep( int n)std:cout << std:setw
10、<< std:setfill( 'O')<< maxForm() <<"-"<<std:setw <<std:setfill( '0') <<minForm() <<"=" <<n <<std:endl;void kabulek :verify()if (hasAccepted= false ) std:cout<<"未接受數(shù)字! !" << std:endl;return
11、 ;std:cout << "num:" <<num << std:endl; this ->setsort(num);int n = maxForm() - minForm();this ->showStep(n);while (n!=6174)this ->setsort(n);n = maxForm() - minForm();this ->showStep(n);std:cout << "檢驗(yàn)完畢"<<std:endl;boolkabulek :isAccepta
12、ble(intn)if ( n < 1000) return false ;if ( n >= 10000) returnfalse ;int arr4;for (int i = 0;i != 4;i+)arri =n % 10;n /= 10;for (int i = 0;i != 3;i+) for (int j = i + 1;j != 4;j+)void kabulek :setNum( int n)std:cout << n << std:endl; system( "Pause");hasAccepted=isAcceptab
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版養(yǎng)老院入住后法律援助與權(quán)益維護(hù)合同3篇
- 2025版上市公司員工薪酬協(xié)議書范本3篇
- 2025年食品行業(yè)電商平臺廣告監(jiān)測服務(wù)合同3篇
- 2025版健身房運(yùn)營管理權(quán)及設(shè)備租賃合同4篇
- 2025年高科技企業(yè)實(shí)習(xí)生保密協(xié)議與研發(fā)成果歸屬合同3篇
- 2025年度煤礦井巷工程勞務(wù)派遣與人員培訓(xùn)承包合同范本4篇
- 2025年度個人借款合同電子化管理規(guī)范4篇
- 2025版淋浴房防水保溫材料供應(yīng)與施工合同4篇
- 2025版事故責(zé)任賠償協(xié)議范本:交通事故賠償15篇
- 2025年高端皮鞋定制加工合同范本3篇
- 無人化農(nóng)場項(xiàng)目可行性研究報告
- 《如何存款最合算》課件
- 社區(qū)團(tuán)支部工作計劃
- 拖欠工程款上訪信范文
- 《wifi協(xié)議文庫》課件
- 中華人民共和國職業(yè)分類大典是(專業(yè)職業(yè)分類明細(xì))
- 2025年新高考語文復(fù)習(xí) 文言文速讀技巧 考情分析及備考策略
- 2024年??谑羞x調(diào)生考試(行政職業(yè)能力測驗(yàn))綜合能力測試題及答案1套
- 一年級下冊數(shù)學(xué)口算題卡打印
- 2024年中科院心理咨詢師新教材各單元考試題庫大全-下(多選題部分)
- 真人cs基于信號發(fā)射的激光武器設(shè)計
評論
0/150
提交評論