1. 程式人生 > >貪心演算法最少硬幣數

貪心演算法最少硬幣數

package com.web;
import java.util.Scanner;
/**
 * Created by.
 */
public class Permutation {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int sum = input.nextInt();
        int coinnum[] = new int[6];
        for (int i=0; i<6; i++){
            coinnum[i]=input.nextInt();
} solve(sum,coinnum); } //硬幣面值 static int coin[]={1,5,10,50,100,500}; //貪心演算法 //coinnum是每種硬幣個數 public static void solve(int sum, int coinnum[]){ int ans = 0; for(int i=5; i>=0; i--){ int n = Math.min(sum/coin[i],coinnum[i]); sum = sum - n * coin[i]; ans += n; } System.out
.println(ans); } }

相關推薦

貪心演算法最少硬幣

package com.web; import java.util.Scanner; /** * Created by. */ public class Permutation { public static void main(String[] args) {

貪心演算法硬幣問題)

貪心演算法 貪心演算法區域性最優就是整體最優 #include <cmath> #include <cstring> using namespace std; int money[6]={1,5,10,50,100,500};//表示1、

演算法學習——貪心演算法之取遊戲(顯示兩端數字)

演算法描述 取數遊戲:A與B玩取數遊戲,隨機產生的2n個整數排成一列,只顯示兩端的整數,只有當A或B取完數會顯示下一個數或者是前一個數(若是取末尾的數) A的取數策略:採用貪心策略,每次取數取兩個數中最大的那個數 B的取數策略:當兩個數相差較大,取大的那個數,若相差為1,則在這兩個數中隨意取一個數

演算法:(貪心演算法)--刪問題

刪數問題(需知道的數學定理) 給定n位正整數a,去掉其中任意k≤n 個數字後,剩下的數字按原次序排列組成一個新 的正整數。對於給定的n位正整數a和正整數 k,設計一個演算法找出剩下數字組成的新數最

使用貪心演算法實現硬幣找零問題

硬幣找錢問題與網易部落格http://yixiong89921.blog.163.com/blog/static/132537788201137105357406/同步問題描述設有6種不同面值的硬幣,各硬幣的面值分別為5分,1角,2角,5角,1元,2元。現要用這些面值的硬幣來購物和找錢。購物時規定了可以使用的

貪心演算法-翻硬幣

問題描述 小明正在玩一個“翻硬幣”的遊戲。 桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。 比如,可能情形是:**oo***oooo 如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo 現在小明的問題

【Educational Codeforces Round 2C】【貪心最少修改下得到字典序儘可能小回文串

A string is called palindrome if it reads the same from left to right and from right to left. For example "kazak", "oo", "r" and "mikhailrubinchikkihcnib

最少錢幣-貪心演算法-CCF-CSP練習題

目錄 題目: 分析: 總結: 來自湖大程式設計訓練系統(外網進不去,所以不貼連結了)。 題目: 最少錢幣數 問題描述 這是一個古老而又經典的問題。用給定的幾種錢幣湊成某個

【NOJ1596、1597】【貪心演算法之最小生成樹】最少修建多長的公路能把所有村莊連起來(圖示Prim與Kruskal演算法

1596.最少修建多長的公路能把所有村莊連起來(一) 時限:1000ms 記憶體限制:10000K  總時限:3000ms 描述 一個地區有n個村莊,有一些村子之間可以修路,已知每條路的長度,問最少修建多長的公路可以把所有的村子連線起來。 輸入 先輸入兩個正整數n,

最小值問題(Java實現)——貪心演算法

刪數最小值問題——貪心演算法 【問題描述】 給定一個 n 位正整數 a , 去掉其中 k<=n 個數字後按原左右次序將組成一個新的正整數。對給定的 a ,  k 尋找一種方案,使得剩下的數字組成的新數最小。 程式原始碼: package SF; import j

貪心演算法 Problem F 1005 花最少(數量)的紙幣

#include<iostream> #include<stdio.h> #include<string.h> using namespace std; int main(){ int n; cin>>n; while(n--){

貪心演算法-最大不相交區間問題

數學模型 數軸上有n個區間[Ai,Bi],要求選擇儘量多的區間,並使得這些區間不存在交集。 解題思路 貪心策略,按照B1<=B2<=B3……的方式進行排序,然後從前向後遍歷區間

問題(貪心演算法

1.問題描述:問題描述:給定n位正整數a,去掉其中任意k<=n個數字後,剩下的數字按原次序排列組成一個新的正整數,對於給定的n位正整數a和正整數k,設計一個演算法找出剩下數字組成的新數最小的刪數方案。對於給定的正整數a,程式設計計算刪去k個數字後得到的最小數。輸入檔案示

動態規劃 需要最少硬幣

假設給你 總額為11元,硬幣種類為 1,3,5. 求最小的硬幣數 遞推公式為:d(i)=min{ d(i-vj)+1 }  vj為面額 1,3,或者5 這個基本是最簡單的動態規劃演算法,程式碼如下:p

貪心演算法4:刪問題

題目描述 鍵盤輸入一個高精度的正整數N,去掉其中任意kk個數字後剩下的數字按原左右次序將組成一個新的正整數。程式設計對給定的N和k,尋找一種方案使得剩下的數字組成的新數最小。 輸出應包括所去掉的數字的位置和組成的新的整數。(N不超過250位) 輸入資料均不需判錯。 Si

C++ 之 貪心演算法 ( 刪問題 )

貪心演算法 — 刪數問題 : 鍵盤輸入一個高精度的正整數n(n<=240位),去掉其中任意s個數字後剩下的數字按照原來的次序將組成一個新的正整數。程式設計對給定的n和s,尋求一種方案,使得剩下組

【動態規劃】最少硬幣換取目標錢【0-1揹包問題】

/*********************************** 最少硬幣換取目標錢數【0-1揹包問題】 ***************************************/ /***************************** 思路: 1.建立

【51NOD—貪心演算法專題】 E 做任務三 區間貪心+不相交子區間最少人數

做任務三  基準時間限制:1 秒 空間限制:131072 KB 分值: 5 B君和m個人一起,要完成n個任務,在這個題中,B君和m個人,什麼都不做。 第i個任務有一個開始時間s[i]和結束時間e[

硬幣找零問題:看分治/動態規劃/貪心演算法的區別與聯絡

硬幣找零問題:存在一堆面值為 v1、v2、v3 … 個單位的硬幣,問最少需要多少個硬幣才能找出總值為x單位的零錢?這裡我們假設v[]={0, 1, 2, 5, 10, 20, 50}。0是用來充位數的,這樣v1、v2與下標1、2對上。這裡v1必須為1,若不為1的話,給定一個

問題(典型的貪心演算法問題)

題目: 鍵盤輸入一個高精度的正整數n(<=240位), 去掉任意s個數字後剩下的數字按原左右次序將組成一個新的正整數。 程式設計對給定的n和s,尋找一種方案,使得剩下的數最小。 Simple Input 178543 4 Simple Output 13 先放程式碼: