頭條面試題(1-找零問題)

問題:

有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;
    
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章