Z国的货币系统包含面值1元、4元、16元、64元共计四种硬币,以及面值1024元的纸币。
现在小Y使用1024元的纸币购买了一件价值为N的商品,请问最少他会收到多少硬币。
输入格式
共一行,包含整数N。
输出格式
共一行,包含一个数,表示最少收到的硬币数。
数据范围
0<N≤10240<N≤1024
输入样例:
200
输出样例:
17
样例解释
花200,需要找零824块,找12个64元硬币,3个16元硬币,2个4元硬币即可。
#include <iostream>
using namespace std;
int main(){
int N;
cin>>N;
N=1024-N;
//顺序执行
// int count0=0,count1=0,count2=0,count3=0,count=0;
// count0=N/64;
// N=N%64;
// count1 =N/16;
// N=N%16;
// count2 = N/4;
// N = N%4;
// count3 = N/1;
// count = count0+count1+count2+count3;
//特殊情况,
// int x=64,count=0;
// while(N!=0){
// count+=N/x;
// N=N%x;
// x/=4;
// }
//学习定义一个int 数组int coins[4]={64,16,4,1};
int count =0;
int coins[4]={64,16,4,1};
for(int i=0;i<4;i++){
count+=N/coins[i];
N=N%coins[i];
}
cout<<count<<endl;
return 0;
}
https://www.bilibili.com/video/av49335912, 题库:https://www.acwing.com/problem/content/679/前ACM选手