1 条题解

  • 0
    @ 2021-07-17 11:39:21

    贪心法,先用面额比较大的硬币。
    注意,10!以上的面额就很大了,在本题中没有作用。

    #include <iostream>
    using namespace std;
    int fac[20];
    int main() {
      int n;cin>>n;
      fac[0] = 1;
      for (int i = 1; i <= min(10,n); i++) {
        fac[i] = fac[i - 1] * i;
      }
      int P, answer = 0;
      cin >> P;
      for (int i = min(10,n); i >= 1; i--) {
        while (P >= fac[i]) {
          answer++;
          P -= fac[i];
        }
      }
      cout << answer << endl;
    }
    
  • 1

信息

ID
1275
难度
8
分类
(无)
标签
(无)
递交数
149
已通过
19
通过率
13%
被复制
7
上传者