贪心算法求解

  1. 获取输入商品价值,求得需要找的钱
  2. 看需要找零的钱满足最大面值的硬币几个,从总价值中减去相应价值
  3. 不断循环求解,每一次都是贪心求解当前面值的硬币最多使用的个数 具体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;
}