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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

给我往死里贪——HRBUST - 1167-每种面值的货币要多少

發布時間:2024/2/28 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 给我往死里贪——HRBUST - 1167-每种面值的货币要多少 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Problem describe

組織終于發工資了,等了好久的工資終于來了。。。
為了讓大家能在領工資的時候能盡量快,組織決定一次發完所有工資,不會出現讓員工找零的情況,也就是說,如果一個員工的工資是1160元,就會給11張100元,1張50元,1張10元,而不會給員工1200元,然后讓員工找40元零錢的情況。
員工的工資都是整數,單位是元,并且市面上流通的RMB面值有100元,50元,20元,10元,5元,1元。
要求最終需要的紙幣張數最少。

Input

有多組測測試數據,每組測試數據占一行。
對于每組測試數據,第一個數n表示組織有多少員工,接下來有n個數,表示每一個員工要發多少工資。
處理到文件結束。
1 <= n <= 100000, 每個員工的工資不超過1000000

Output

每行輸出6個數,表示100元、50元、20元、10元、5元、1元各需要多少張。
答案可能有0。

Sample Input

1 701
3 474 808 212

Sample Output

7 0 0 0 0 1
14 1 1 1 1 9


題意:如何選擇,使發工資的鈔票數最少。

貪心模板題,往死貪就行了,最初想到用for+減法選擇最優解,仔細思考了一下后,發現用除法+取余可以更高效率的解決問題。

需要注意的是,每輸入一次數據,就要做一次貪心,把結果相加, 而不是數據相加后貪心輸出結果


#include<iostream> using namespace std; int main() {ios::sync_with_stdio(false); int n; while(cin>>n) {int num=0, a_100=0, a_50=0, a_20=0, a_10=0, a_5=0, a_1=0; for(int i = 0; i < n; i++) {cin>>num; a_100+=num/100; num%=100;a_50+=num/50; num%=50;a_20+=num/20; num%=20;a_10+=num/10; num%=10;a_5+=num/5; num%=5;a_1+=num/1; num%=1;}cout<<a_100<<' '<<a_50<<' '<<a_20<<' '<<a_10<<' '<<a_5<<' '<<a_1<<endl;}return 0; }

總結

以上是生活随笔為你收集整理的给我往死里贪——HRBUST - 1167-每种面值的货币要多少的全部內容,希望文章能夠幫你解決所遇到的問題。

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