Z国的货币系统包含面值1元、4元、16元、64元共计4种硬币,以及面值1024元的纸币。现在小Y使用1024元的纸币购买了一件价值为N的商品,请问最少他会收到多少硬币?
一、 直接数学公式解法
首先用最容易理解的办法,根据题目要求,直接硬性判断输出,设输入的N为购买的商品的价值,那么剩下的1024-N的金额就是我们需要判断能收到最少的硬币数量。
既然需要硬币数量最小,那么单个面值最大的硬币数量越多,最后总的硬币数量就会越少。所以,最简单的办法就是,先将64元硬币的最大数量求解出来,然后依次是16元、4元、1元。
方法1:
#include<iostream>
#include<string>
using namespace std;
int main(){
int n;
cin>>n;
int cnum1,cnum2,cnum3,cnum4;
cnum1=(1024-n)/64; //64元硬币的数量
cnum2=((1024<