水壺問題 C語言課程設計

時間 2022-12-26 22:00:10

1樓:匿名使用者

參閱這個:法國著名數學家波瓦松在表年時代研究過乙個有趣的數學問題:某人有12品脫的啤酒一瓶,想從中倒出6品脫,但他沒有6品脫的容器,僅有乙個8品脫和5品脫的容器,怎樣倒才能將啤酒分為兩個6品脫呢?

*問題分析與演算法設計。

將12品脫酒 8品脫和5品脫的空瓶平分,可以抽象為解不定方程:

8x-5y=6

其意義是:從12品脫的瓶中向8品脫的瓶中倒x次,並且將5品脫瓶中的酒向12品脫的瓶中倒y次,最後在12品脫的瓶中剩餘6品脫的酒。

用a,b,c代表12品脫、8品脫和5品脫的瓶子,求出不定方程的整數解,按照不定方程的意義則倒法為:

a ->b ->c ->a

x y倒酒的規則如下:

1) 按a ->b ->c ->a的順序;

2) b倒空後才能從a中取。

3) c裝滿後才能向a中倒。

按以上規則可以編寫出程式如下:

*程式說明與注釋。

#include

void getti(int a,int y,int z);

int i; /最後需要分出的重量*/

int main()

void getti(int a,int y,int z) /a:滿瓶的容量 y:第乙個空瓶的容量 z:第二個空瓶的容量*/

/*如果第一瓶為空,則將滿瓶倒入第一瓶中*/

else if(c==z)

/*如果第二瓶滿,則將第二瓶倒入滿瓶中*/

else if(b>z-c) /如果第一瓶的重量》第二瓶的剩餘空間*/

/*則將裝滿第二瓶,第一瓶中保留剩餘部分*/

else /*否則,將第一瓶全部倒入第二瓶中*/

printf(" 4d %4d %4d",a,b,c);

2樓:匿名使用者

沒思路啊。我的做法是這樣。

我先吧l7整滿,-3-3後這樣l7就有有1l的水了,迴圈5次就哦了,沒啥思路。就不寫碼了。

C語言課程設計,C語言課程設計題目

程式如下 課題 猜數遊戲。功能要求 計算機產生隨機數,猜中即勝,猜不中,提示是大了還是小了,繼續猜,直至猜到,給出所用時間和評語。include include include void main else if n4 count 6 printf 猜對了!只是次數有點多哈哈。用時 2f毫秒 ela...

C語言高手請進100分跪求課程設計急急急可追加分

做個標記,我加你qq了 發到你郵箱去了 include main 哇哇,分好多,給你一個 barycenter.c include include include include define ndebug include include barycenter.h struct barycenter...

化工原理課程設計,化工原理課程設計

實踐總週數 2周 總學分 2學分。特別是化學工程與工藝的專業,設計設計步驟。1 性質 目的 化工原理課程設計是化工原理教學的一個重要環節,是綜合應用本門課程和有關先修課程所學知識,完成以單元操作為主的一次設計實踐。通過課程設計使學生掌握化工設計的基本程式和方法,並在查閱技術資料 選用公式和資料 用簡...