C/C++の宿題を片付けます 57代目
■ このスレッドは過去ログ倉庫に格納されています
0576デフォルトの名無しさん
2006/01/15(日) 03:45:11#define NELEMS(a) (sizeof(a)/sizeof(a[0]))
int f(int n) {
int buf[32]; /* 最大の貨幣と同じサイズ */
int table[] = {1, 5, 15, 32}; /* 貨幣の種類 */
int i, j, min;
buf[0] = 0;
for (i = 1; i < NELEMS(buf); i++)
buf[i] = NELEMS(buf);
for (i = 1; i <= n; i++) {
min = buf[(NELEMS(buf) + i - table[0]) % NELEMS(buf)];
for (j = 1; j < NELEMS(table); j++) {
if (min > buf[(NELEMS(buf) + i - table[j]) % NELEMS(buf)])
min = buf[(NELEMS(buf) + i - table[j]) % NELEMS(buf)];
}
buf[i % NELEMS(buf)] = min + 1;
}
return min + 1;
}
int main(int argc, char *argv[]) {
printf("%d\n", f(atoi(argv[1])));
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています