题解 | 硬币凑钱

硬币凑钱

https://www.nowcoder.com/practice/a9228c3f450749a5bc8edd2f0e7b90e9

#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>
int main() {
    const int INF =0x3f3f3f3f;
    int n;
    cin>>n;
    vector<int>dp(n+1,INF);
    dp[0]=0;
    for(int i=1;i<=n;i++){
        if(i>=7)dp[i]=min(dp[i],dp[i-7]+1);
        if(i>=5)dp[i]=min(dp[i],dp[i-5]+1);
        if(i>=1)dp[i]=min(dp[i],dp[i-1]+1);
    }
    cout<< dp[n]<<endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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