贪心算法求解
- 获取输入商品价值,求得需要找的钱
- 看需要找零的钱满足最大面值的硬币几个,从总价值中减去相应价值
- 不断循环求解,每一次都是贪心求解当前面值的硬币最多使用的个数 具体C++代码如下:
#include<iostream>
using namespace std;
int coins[4]={64,16,4,1};//已有的硬币面值
int count[4]={0};//找回的每种面值硬币个数
int main(){
int N,total_coins;
total_coins=0;//硬币总个数
cin>>N;
if (N>0 && N<=1024){//对输入判断
N=1024-N;
for(int i=0;i<4;i++){
count[i]= N/coins[i];
N=N-count[i]*coins[i];
total_coins+=count[i];
}
}
else{
cout<<"input Error!"<<endl;
}
cout<<total_coins<<endl;
return 0;
}