奶牛王国现有货币系统的银币面值有1,2,5,10,20,50,100,200,500,1000,2000,5000,10000,20000,50000。
现在农夫打算在现有货币系统的基础上,再推出一种新面值:newBanknote。
有N头奶牛要购物,第i头奶牛购买的商品的价值是cost[i]。
现在你要回答N个问题,第i个问题是:至少需要多少枚银币才能恰好凑成cost[i]?
输入格式
输入文件名:641.in
第一行,两个整数:newBanknote和N。1 <= newBanknote <= 2000000000。 1<=N<=50。
第二行,N个整数,第i个整数是cost[i]。1 <= cost[i] <= 2000000000。
输出格式
输出文件名:641.out
共一行,N个整数,依次对应N个问题的答案。
输入/输出例子1
输入:
4700 4
53 9400 9401 30000
输出:
3 2 3 2
作答区域
#include<bits/stdc++.h>
using namespace std;
long long k,n,a,minn,need,sum;
long long c[16]={1,2,5,10,20,50,100,200,500,1000,2000,5000,10000,20000,50000};
int main(){
cin>>k>>n;
for(int i=1;i<=n;i++){
cin>>a;
minn=INT_MAX;
for(int j=0;j<=50000;j++){
if(j*k>a) break;
need=a-j*k;
sum=j;
for(int j=14;need>0;j--){
sum+=need/c[j];
need%=c[j];
}
minn=min(sum,minn);
}
cout<<minn<<" ";
}
return 0;
}