日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

贪婪算法

發布時間:2023/12/19 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 贪婪算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.錢幣找零問題
這個問題在我們的日常生活中就更加普遍了。假設1元、2元、5元、10元、20元、50元、100元的紙幣分別有c0, c1, c2, c3, c4, c5, c6張。

現在要用這些錢來支付K元,至少要用多少張紙幣?

用貪心算法的思想,很顯然,每一步盡可能用面值大的紙幣即可。在日常生活中我們自然而然也是這么做的。

在程序中已經事先將Value按照從小到大的順序排好。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int count[] = {3, 0, 2, 1, 0, 3, 5};
int value[] = {1, 2, 5, 10, 20, 50, 100};

int min(int a, int b)
{
    return a > b ? b : a;
}
int greedy_money(int money)
{
    int i, j;
    j = 0;
    for (i = 6; i >= 0 ; i--)
    {
        if(money/value[i] > 0)
        {
            int n = min((int)money/value[i], count[i]);
            money = money - n * value[i];
            j = j + n;
            if (money <= 0)
            {
                break;
            }
        }
    }
    
    if(money > 0)
    {
        return -1;
    }
    
    return j;
}
int main()
{
    int m;
    scanf("%d", &m);
    printf("%d
", greedy_money(m));
    return 0;
}

總結

以上是生活随笔為你收集整理的贪婪算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。