-1
私はコイン変更アルゴリズムを書いています。アルゴリズムは以下のhttp://ace.cs.ohiou.edu/~razvan/courses/cs404/lecture19.pdf私の次のコードに間違っています
から取得され、今までの私のコードです:入力2349
と2102
答えを
#include <vector>
#include <iostream>
#include <string>
int compute_change(std::vector<int> &d, int n) {
int k = (int)d.size();
std::vector<std::vector<int> > C(k, std::vector<int>(n + 1));
for (int i = 0; i < k ; i++)
C[i][0] = 0;
for (int i = 1; i <= n ; i++)
C[0][i] = i;
for (int i = 1 ; i < k; i++) {
for (int j = 1 ; j <= n; j++) {
if (j < d[i])
C[i][j] = C[i - 1][j];
else
C[i][j] = std::min(C[i - 1][j], 1 + C[i][j - d[i]]);
}
}
std::cout << C[k - 1 ][n - 1] << std::endl;
return C[k - 1][n - 1];
}
int main (int argc, char **argv) {
int points[] = {2, 3, 17, 23, 42, 98};
std::vector<int> d (points, points + sizeof(points)/sizeof(int));
int solution = compute_change(d,2349);
solution = compute_change(d,2102);
solution = compute_change(d,2001);
solution = compute_change(d,1747);
return 0;
}
は正しいですが、2001
答えを間違っています。 ここでバグを見つけることができません。
コードに問題がありますか?それにはバグがあります。デバッグは、構築すべき重要なスキルです。 –
どうしたのですか?あなたはそれを書いた後、あなたも私達もそれを理解することができないような方法で書きました。 –
問題のある動作を例示する質問を作成できず、見つかったものの例を挙げて、さらにデバッグする必要がある場合。 – AJG85