最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

《算法設(shè)計與分析》實驗報告3

2022-08-05 10:22 作者:老師-忘記密碼  | 我要投稿

算法設(shè)計與分析》實驗報告3

?

實驗名稱: 貨幣支付問題

系????別:xxx???????????

專????業(yè):xxx? ? ? ? ? ?

班????級:xxx

姓????名:xxx? ? ? ? ??

學(xué)????號:xxx

實驗日期:xx年xx月xx日


?

1. ?算法題目

根據(jù)動態(tài)規(guī)劃法的設(shè)計思想和算法步驟,要求學(xué)生設(shè)計一個動態(tài)規(guī)劃算法,用于解決貨幣支付的問 題。n種貨幣面額的紙幣,需要支付y價值的商品,問如何出最少的貨幣張數(shù)??梢韵忍幚碇恢Ц兑?種面額的貨幣,再處理支付兩種面額的貨幣,再處理支付三種面額的貨幣,......。后一個方案,可 以基于前一個方案,通過追加不同面額的貨幣得到。因此,可以用動態(tài)規(guī)劃算法解決該問題。

?

2. ?設(shè)計思路與步驟

定義錢幣種類數(shù)組coins[]和動態(tài)規(guī)劃數(shù)組dp[];初始化dp和coins;找出動態(tài)規(guī)劃條件如下:

if(i >= coins[j] && dp[i - coins[j]] + 1 < dp[i]){ ?

????????????????dp[i] = dp[i- coins[j] ] + 1;

????????????}

填表即可得出dp[money]即為最優(yōu)解。

?

3. ?算法實現(xiàn)與代碼

#include<stdio.h>

int main() {

int coins[10000];

int dp[10000];

int kind;

int i;

int j;

int money;

printf("請輸入貨幣的種類:");

scanf("%d", &kind);

for(i = 0; i < kind; i++) {

printf("請輸入第%d種貨幣的面值:\n", i + 1);

scanf("%d", &coins[i]);

}

printf("請輸入待支付的金額(money<=10000):");

scanf("%d", &money);

dp[0] = 0;

for(i = 1; i <= money; i++)

dp[i] = 65535;

for(i = 1; i <= money; i++) {

for(j = 0; j < kind; j++){

if(i >= coins[j] && dp[i - coins[j]] + 1 < dp[i]){ ?

????????????????dp[i] = dp[i- coins[j] ] + 1;

????????????}

????????}

}

if(dp[money] == 65535)

printf("支付失??!\n");

else

printf("最少貨幣數(shù)為%d\n", dp[money]);

return 0;

}

?

4. ?測試用例與結(jié)果


答:xxx。

?

《算法設(shè)計與分析》實驗報告3的評論 (共 條)

分享到微博請遵守國家法律
萨迦县| 东城区| 基隆市| 广昌县| 宜川县| 泊头市| 娄烦县| 佛坪县| 商都县| 江川县| 稷山县| 罗山县| 宁都县| 社旗县| 台北县| 甘谷县| 慈溪市| 德州市| 积石山| 泌阳县| 铅山县| 乐平市| 乌什县| 连云港市| 大埔区| 平昌县| 青浦区| 黄大仙区| 无锡市| 永胜县| 丰县| 内江市| 绿春县| 法库县| 南丰县| 神木县| 舟曲县| 靖州| 柳林县| 江达县| 榕江县|