货币兑换问题
发布时间
阅读量:
阅读量
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m, i, n, j;
printf("面值个数:");
scanf("%d", &m);
int FaceValue[m+1];
FaceValue[0] = 0;
printf("面值:\n");
for(i = 1; i < m+1; i++){
scanf("%d", &n);
FaceValue[i] = n;
}
printf("输入要兑换的钱的面值:");
scanf("%d", &n);
int table[n+1][m+1];
//初始化
for(i = 0; i <= n; i++){
table[i][0] = 0;
}
for(j = 0; j <= m; j++){
table[0][j] = 0;
}
//填表
for(i = 1; i <= n; i++){ //总钱数
for(j = 1; j <= m; j++){ //面值的数目
if(FaceValue[j] == i)
table[i][j] = 1;
else if(FaceValue[j] < i)
table[i][j] = table[i - FaceValue[j]][j] + 1;
else
table[i][j] = table[i][j - 1];
}
}
for(i = 0; i <= n; i++){
printf("%d\t", i);
for(j = 0; j <= m; j++){
printf("%d\t", table[i][j]);
}
printf("\n");
}
printf("兑换的最小面值的个数是:%d", table[n][m]);
return 0;
}
运行结果:

全部评论 (0)
还没有任何评论哟~
