标签:假期 老师 编程 int 张数 面额 100 include
此博客链接:https://www.cnblogs.com/ping2yingshi/p/12268487.html
1。发工资
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2021
Problem Description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?
这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。 Input 输入数据包含多个测试实例,每个测试实例的第一行是一个整数n(n<100),表示老师的人数,然后是n个老师的工资。
n=0表示输入的结束,不做处理。 Output 对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数。每个输出占一行。 Sample Input 3 1 2 3 0 Sample Output 4 题解:给老师的工资是最少的钱数而且不找零,这里不知道每个老师的工资到底是多少,但是想要钱数最少,就要先满足面额大的钱,也就是要先找有几个100的面额,然后50的面额,依次类推,直到面额为1,把所有面额的张数加到一起,就是最少的张数。 代码如下:
#include<stdio.h> #include<math.h> #include<stdlib.h> int main(void) { int n; while(~scanf("%d",&n)) { if(n==0) break; int c[100]; int i; int sum=0; for(i=0;i<n;i++) scanf("%d",&c[i]); for(i=0;i<n;i++) { if(c[i]/100!=0) sum=sum+c[i]/100; if(c[i]%100/50!=0) sum=sum+1; if(c[i]%100%50/10!=0) sum=sum+c[i]%100%50/10; if(c[i]%100%50%10/5!=0) sum=sum+1; if(c[i]%100%50%10%5/2!=0) sum=sum+c[i]%100%50%10%5/2; sum=sum+c[i]%100%50%10%5%2; } printf("%d", sum); printf("\n"); } return 0; }
标签:假期,老师,编程,int,张数,面额,100,include 来源: https://www.cnblogs.com/ping2yingshi/p/12268487.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。