发工资(准备钱数)

来源:互联网 发布:js实现页面自动跳转 编辑:程序博客网 时间:2024/04/24 05:25
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作    者:刘佳琦 * 完成日期:2014年 12 月 6日 * 版 本 号:v1.0 * * 问题描述:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢? 这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。  * 输入描述:输入数据包含多个测试实例,每个测试实例的第一行是一个整数n(n<100),表示老师的人数,然后是n个老师的工资。 n=0表示输入的结束,不做处理 * 程序输出:准备的钱数 */#include <iostream>using namespace std;int main(){    int n,i,a[100],sum=0;    while(cin>>n&&n!=0)    {        for(i=0; i<n; i++)            cin>>a[i];   for(i=0; i<n; i++)    {    sum+=a[i]/100;    if(a[i]%100==0) continue;    else a[i]%=100;    sum+=a[i]/50;    if(a[i]%50==0) continue;    else a[i]%=50;    sum+=a[i]/10;    if(a[i]%10==0)continue;    else a[i]%=10;    sum+=a[i]/5;    if(a[i]%5==0)continue;    else a[i]%=5;    sum+=a[i]/2;    if(a[i]%2==0)continue;    else a[i]%=2;    sum+=a[i];  }    cout<<sum<<endl;    sum=0;    }  return 0;}

运行结果:

学习心得:之前提交错误,因为忘记给sum在循环中清零。


0 0