利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法示例
前言
百馬百擔(dān)問題,有100匹馬,馱100擔(dān)貨,大馬馱3擔(dān),中馬馱2擔(dān),兩匹小馬馱1擔(dān),問共有多少種馱法?且各種馱法中大、中、小馬各多少匹?
【分析】
1、定義整型變量m、n、k分別存放大馬匹數(shù)、中馬匹數(shù)、小馬匹數(shù);
2、定義整型變量sum存放共有幾種馱法,且sum賦初值為0;
3、根據(jù)題意,大馬、中馬、小馬共100匹;大馬、中馬、小馬馱100擔(dān)貨滿足如下關(guān)系:
m+n+k=100(匹)
3*m+2*n+1/2*k=100(擔(dān))
4、三個(gè)未知數(shù),兩個(gè)方程,此題有若干組解;
5、計(jì)算機(jī)求解此類問題,采用試湊法(也稱窮舉法)來實(shí)現(xiàn),即將可能出現(xiàn)的各種情況一一羅列測(cè)試,判斷是否是問題真正的解。此題可以采用兩重循環(huán),列舉出該問題所有可能的解進(jìn)行篩選。
【源程序】
#include int main( void ) { int m,n,k; int sum=0; printf("各種馱法如下: "); for(m=1;m<=100/3;m++ ) for(n=1;n<100/2;n++) { k=100-m-n; if((2*3*m+2*2*n+k)==2*100) { printf("大馬%3d匹; 中馬%3d匹; 小馬%3d匹. ",m,n,k); sum++; } } printf("共有%d種馱法. ",sum); return 0; }
【運(yùn)行結(jié)果】
本算法中主要用到了c語言的for循環(huán),下面簡(jiǎn)單介紹下for循環(huán)。
for循環(huán)
c語言中的for循環(huán)語句使用最為靈活,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況,它完全可以代替while語句.
for(表達(dá)式 1;表達(dá)式 2;表達(dá)式 3)語句
它的執(zhí)行過程如下:
(1)先求表達(dá)式 1.
(2)求表達(dá)式2,若其值為真(值為非0),則執(zhí)行for語句中指定的內(nèi)嵌語句,然后執(zhí)行下面第三步 做若為假(值為0),則結(jié)束循環(huán),轉(zhuǎn)到第5步.
(3)求解表達(dá)式3
(4)轉(zhuǎn)回上面第(2)步驟繼續(xù)執(zhí)行;
(5)結(jié)束循環(huán),執(zhí)行for語句下面的一個(gè)語句;
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- c語言實(shí)現(xiàn)基數(shù)排序解析及代碼示例
- C語言結(jié)構(gòu)體定義的方法匯總
- 利用C語言玩轉(zhuǎn)魔方陣實(shí)例教程
- C語言中輸入函數(shù)(scanf()、fgets()和gets())的區(qū)別詳解
- C語言數(shù)據(jù)結(jié)構(gòu)之學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
- C語言實(shí)現(xiàn)二叉樹的基本操作
- C語言創(chuàng)建動(dòng)態(tài)dll和調(diào)用dll(visual studio 2013環(huán)境下)
- c語言通過opencv實(shí)現(xiàn)輪廓處理與切割
相關(guān)文章
用C語言舉例講解數(shù)據(jù)結(jié)構(gòu)中的算法復(fù)雜度結(jié)與順序表
這篇文章主要介紹了講解數(shù)據(jù)結(jié)構(gòu)中的算法復(fù)雜度結(jié)與順序表的C語言版示例,包括對(duì)時(shí)間復(fù)雜度和空間復(fù)雜度等概念的簡(jiǎn)單講解,需要的朋友可以參考下2016-02-02C++雙向鏈表實(shí)現(xiàn)簡(jiǎn)單通訊錄
這篇文章主要為大家詳細(xì)介紹了C++雙向鏈表實(shí)現(xiàn)簡(jiǎn)單通訊錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05一篇文章帶你實(shí)現(xiàn)C語言中常用庫(kù)函數(shù)的模擬
這篇文章主要介紹了C語言中常用庫(kù)函數(shù)的模擬,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09C++函數(shù)參數(shù)取默認(rèn)值的深入詳解
本篇文章是對(duì)C++中函數(shù)參數(shù)取默認(rèn)值進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05