問題:
有4種硬幣,分別價值:1、4、16、64元;一種紙幣,價值:1024元。
小明去超時買東西,共花費N元(0<N<1024),他拿出一張紙幣給售貨員,售貨員只有硬幣可以給小明。問:售貨員最少找給小明多少個硬幣?
思路:貪心算法,依次把價值64、16、4、1的硬幣的個數算出來,再相加即可得到最少硬幣個數。
代碼(C++):
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
n = 1024 - n;
int res = 0, coins[4] = {64,16,4,1};
for(int i = 0; i < 4 ; i ++ )
{
res += n/coins[i];
n %=coins[i];
}
cout << res <<endl;
return 0;
}