leetcode刷题第一天--硬币k元最少多少张纸币

硬币k元最少多少张纸币

(定个小计划,每天leetcode刷一道题睡觉咯,从最简单的开始~~)
有面值1,5,10,50,100,分别对应变量:a、b、c、d、e 若有k元钱,最少多少张纸币,若不能则输出-1 贪心:从大到小遍历一遍,注意给定币值数量判断

#include<iostream>
#include<bits/stdc++.h> 
using namespace std;
 int main(){ 
int a,b,c,d,e;
int k;
cin >> a >> b >> c >> d >> e; 
cin >> k;
int res = 0; 
if(k >= 100 && e) { 
int s = k/100;
 if(s <= e) { 
  res += s;
  k = k%100; 
  } else {
res += e;  
k = k - (e * 100); 
 }    }  
 if(k >= 50 && d) {
 int s = k/50;
 if(s <= d) {
 res += s; 
 k = k%50; 
} else {
res += d; 
 k = k - (d * 50); 
 }    } 
 if(k >= 10 && c) {
 int s = k/10; 
 if(s <= c) {
 res += s; 
 k = k%10; 
 } else { 
 res += c;
 k = k - (c * 10); 
  }    } 
if(k >= 5 && b) {
int s = k/5;
 if(s <= b) {
res += s;
k = k%5;  
 } else { 
  res += b;  
   k = k - (b * 5);        }    } 
    if(k <= a) 
    cout << res+k; 
  else  
   cout << -1;
  return 0;}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值