C語言 湊硬幣(兩元硬幣的組合方案)

2021-10-03 04:55:46 字數 1674 閱讀 5618

演算法思路:

1、一元硬幣可以分成1、2、5角等組成

2、可以採用控制變數來進行列舉試驗;

3、將可以構成指定元的組合方案進行輸出。

**如下:

#include

intmain()

}}return0;

}輸出結果:

請輸入元:1

可以用1個一角加2個二角加1個5角得到1元

可以用3個一角加1個二角加1個5角得到1元

------

----

----

----

----

----

----

-- process exited after 1.101 seconds with return value 0

請按任意鍵繼續.

..

**分析:

這裡的三重迴圈用的是控制變數的方法,當one=1時迴圈進入two;two=1時迴圈進入five;five=1時發現if語句one+two2+five5==x*10為假,隨即跳出迴圈two++執行後two=2,在進入five迴圈,以此類推;可以在dev c++中設定斷點後,使用debug來觀察下程式的具體執行步驟。

**思路:

只要一種方案就要求對其它存在的方案進行打斷,即跳出當前所有的迴圈語句;

這時候需要用到break語句進行接力。

**如下:

#include

intmain()

}if(exit==1)

break;}

if(exit==1)

break;}

return0;

}**輸出:

請輸入元:2

可以用1個一角加2個二角加3個5角得到2元

------

----

----

----

----

----

----

-- process exited after 1.112 seconds with return value 0

請按任意鍵繼續.

.

**分析:

這個程式巧妙之處在於當最內層迴圈的條件語句不執行時,不會發生打斷其它的迴圈程序,一旦最內層迴圈程序被執行時,設定的break計數器便發生改變,從而影響其它迴圈程序不執行,相當於鏈式反應,直接跳出所有迴圈,這裡break計數變數設定的十分巧妙。

goto函式實現湊硬幣

**如下:

//湊硬幣goto函式

#include

intmain()

}}} out:

return0;

}程式輸出:

請輸入元:2

可以用1個一角加2個二角加3個5角得到2元

------

----

----

----

----

----

----

-- process exited after 1.652 seconds with return value 0

請按任意鍵繼續.

..

**分析:

goto函式可以便捷的實現多重迴圈中的跳轉,不過慎用goto函式以免造成不必要麻煩;另外大型專案為了便於維護,一般不使用goto。

三元組表的轉置 c語言

順序輸入乙個三元組表,先輸出其矩陣形態,然後對其進行轉置並輸出轉置後的矩陣。include define maxsize 100 typedef struct 定義三元組 san typedef struct sanyuan void zhuanzhi sanyuan m,sanyuan t 對三元...

C語言 資料結構 三元組的實現 最終作業版

include include 定義常量 方便操作 可能也沒多方便 define time 1000 typedef int triplet typedef int status 定義一系列三元組的操作 c語言中的函式 初始化 void inittriplet triplet t,status v1...

找出所有滿足條件且不重複的三元組(C語言)

給你乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 請你找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。void bubblesort int s,int len if flag return int main int...