硬币找零

#include<stdio.h>
#include<string.h>
#define Min(a,b) (a < b ? a : b)
int main()
{
    int n, t;
    while (~scanf("%d%d",&n,&t) && n + t != 0)
    {
        int i, j, a[100] = {0};
        for (i = 1; i <= n; i++)
            scanf("%d",&a[i]);
        int dp[t+1];   // t+1表示钱,dp表示最少硬币数
        memset(dp, 'a', sizeof(dp));
        dp[0] = 0;
        for (i = 1; i <= n; i++)
            for (j = a[i]; j <= t; j++)
                dp[j] = Min(dp[j], dp[j-a[i]]+1);
        printf("%d\n",dp[t]);
    }
    return 0;
}
全部评论

相关推荐

迷茫的大四🐶:价格这么低都能满了?
点赞 评论 收藏
分享
09-18 20:41
阿里巴巴_后端
要个offer怎么这...:哈哈哈哈哈哈,我也拿了0x10000000个offer,秋招温啦啦啦,好开心
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务