题解 | 硬币凑钱
硬币凑钱
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")

查看30道真题和解析