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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++数组:发工资

發(fā)布時(shí)間:2023/12/20 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++数组:发工资 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【題目描述】

財(cái)務(wù)處要給公司的n位員工發(fā)工資了,請(qǐng)你幫助計(jì)算最少要多少張人民幣才能給每位員工發(fā)工資而不必找零呢?已知人民幣的面額為100元,50元,10元,5元,2元和1元這6種。

【輸入格式】

第一個(gè)值為正整數(shù)n,后面接著n個(gè)正整數(shù)表示n位員工的工資

【輸出格式】

一行一個(gè)整數(shù)輸出一共要準(zhǔn)備的人民幣張數(shù)。

【輸入樣例】

3 1 2 3

【輸出樣例】

4

先叨叨兩句:作為一個(gè)小菜雞,也是第一次開始創(chuàng)作,后續(xù)會(huì)一直記錄平時(shí)的練習(xí)和作業(yè)。實(shí)際上自己寫代碼的時(shí)候,沒有那么多注釋,準(zhǔn)備發(fā)上來,所以添了很多注釋。因?yàn)槿绻苡行規(guī)椭匠鯇W(xué)者,希望你們都能看懂,看懂了再復(fù)制粘貼(我大一就查找到資源直接交作業(yè),然后美美掛科~~)。當(dāng)然如果能被大佬發(fā)現(xiàn)這些文章,希望得到批評(píng)指正(希望學(xué)會(huì)更好的算法)!謝謝看完這段廢話的兄弟姐妹萌~

代碼如下:

#include<iostream> using namespace std;int main() {int n, *p, count=0;// count記錄所需人民幣張數(shù)int a[6] = {100,50,10,5,2,1};//面額cin>>n; //員工數(shù) p = new int[n]; //利用指針建立動(dòng)態(tài)數(shù)組for(int i=0;i<n;i++){cin>>p[i];}int t = n;//t:保存待計(jì)算員工人數(shù) while(t != 0) { //每計(jì)算完成一位員工所需數(shù)量,t--,直到全體員工計(jì)算完成后跳出循環(huán)for(int i = 0; i < n; i++) //從第0位員工算到第n-1個(gè) {for(int j = 0; j < 6; j++)//需要最小數(shù)量,即需從最大面額開始計(jì)算 {if(p[i] >= a[j]) //員工工資大于當(dāng)前面額 {//k:記錄當(dāng)前面值的錢需要多少張 int k = p[i] / a[j];count += k; p[i] -= k * a[j]; //為下一面額作準(zhǔn)備 }}}t--;}cout<<count<<endl;return 0; }

解題思路:

(1) 求最少需要多少張,即面值最大的盡可能用的多,所需的總數(shù)才越少(關(guān)鍵!)
(2) 先用最大面值的錢來填數(shù),再用次小的面值來填數(shù),比如280的工資,先發(fā)2個(gè)一百的;剩余80,先發(fā)1個(gè)50;最后剩余30,發(fā)3個(gè)10塊;總共6張
(3) 外層循環(huán)控制,將每位員工所需數(shù)目都計(jì)算出來

總結(jié)

以上是生活随笔為你收集整理的C++数组:发工资的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。