手记

硬币找零问题

有面值1,3,4的三种硬币,求找零6所需的最小硬币数目?(动态规划--C语言实现)

 #include <stdio.h>

int min(int a,int b){
    return a>b?b:a;
}

int main(void) {
    int c[]={0,1,3,4};
    int a[7]={0};
    int n=6;
    int i,j;
    int temp;
    for(i=1;i<=6;i++){
        j=1;
        temp=9999;
        while(i>=c[j]&&j<=3){
            temp=min(temp,a[i-c[j]]);
            printf("%d--------%d\n",j,a[i-c[j]]);
            j++;
        }
        temp=temp+1;
        a[i]=temp;
        printf("a[%d]=%d\n",i,temp);
    }
    printf("最小硬币数为:%d",a[6]);
}


0人推荐
随时随地看视频
慕课网APP