#31840: 不知道自己錯在哪


jason096727@gmail.com (Jason Ho)

學校 : 高雄市苓雅區福東國民小學
編號 : 189939
來源 : [150.116.71.76]
最後登入時間 :
2023-07-15 21:32:51
b511. 換銅板 -- 清華 MOOCs 2014 程式設計導論期末考 | From: [150.116.71.227] | 發表日期 : 2022-08-23 12:40


#include <iostream>

using namespace std;

int coin[5], ans[5], n, m;

void dfs(int i, int sum){
    if (sum == m){
        cout << '(';
        for (int j=0; j<n; j++){
            if (j != 0){
                cout << ',';
            }
            cout << ans[j];
        }
        cout << ')' << '\n';
        return;
    }
    if (i==n-1 || sum>m){
        return;
    }
    for (int k=0; k<=m/coin[i]; k++){
        ans[i] = k;
        dfs(i+1, sum+k*coin[i]);
    }
}

int main(){
    cin >> n;
    for (int i=0; i<n; i++){
        cin >> coin[i];
    }
    cin >> m;
    dfs(0, 0);
    return 0;
}

 
#31897: Re: 不知道自己錯在哪


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [101.136.203.77]
最後登入時間 :
2024-04-07 15:34:14
b511. 換銅板 -- 清華 MOOCs 2014 程式設計導論期末考 | From: [39.9.101.62] | 發表日期 : 2022-08-26 21:27


1.
            cout << ans[j];
2.
    if (i==n-1 || sum>m){
        return;
    }


1. 如果j超過i要輸出0(代表後面的幣值還沒用到)

2. i==n-1改成i==n

 
ZeroJudge Forum