3219 - 第二届校赛样题-中等题样例
时间限制 : 1 秒
内存限制 : 128 MB
作为ACM协会的成员,最盼望的日子就是网络赛左右的几天。今年山建ACM队进入了区域赛,于是刘老师想给每个队员发一笔奖金。
刘老师最近就在考虑一个问题:如果每个同学的奖金额都知道,最少需要准备多少张人民币,才能在给每位同学发奖金的时候都不用老师找零呢?
<span style="font-family:'Times New Roman';font-size:14px;line-height:normal;"> 这里假设同学的奖金都是正整数,单位元,人民币一共有100元、50元、20元、10元、5元和1元六种。</span>
<span style="font-family:'Times New Roman';font-size:14px;line-height:normal;">(题目来源:2009 HDU 新生选拔赛)</span>
题目输入
第一行为正整数T,输入数据包含T个测试实例。
每个测试实例的第一行是一个整数n(n<100),表示同学的人数,然后是n个同学的奖金。
题目输出
对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数。每个输出占一行。
输入/输出样例
输入格式
2 3 1 2 3 2 500 500
输出格式
6 10
C语言解答
#include<stdio.h> int main() {int a;scanf("%d",&a); while(a--){ int s,b,p=0;scanf("%d",&b); while(b--){ int c,d,e,f,g,h,i; scanf("%d",&c);{ d=c/100;e=c%100/50; f=c%50/20;g=c%50%20/10; h=c%10/5;i=c%5; s=d+e+f+g+h+i;p=p+s;} }printf("%d\n",p); } }
C++解答
#include <iostream> #include <algorithm> #include <cmath> #include <fstream> using namespace std; int getnumofmoney(int n) { int r=0; while(n!=0) { if(n>=100) { n-=100; r++; continue; } if(n>=50) { n-=50; r++; continue; } if(n>=20) { n-=20; r++; continue; } if(n>=10) { n-=10; r++; continue; } if(n>=5) { n-=5; r++; continue; } if(n>=1) { n-=1; r++; continue; } } return r; } int main() { //ifstream cin; //ofstream cout; //cin.open("b.in"); //cout.open("b.out"); int tc,testcase; cin>>tc; while(tc--) { cin>>testcase; int p[105]; for(int i=0;i<testcase;i++) cin>>p[i]; int total=0; for(int i=0;i<testcase;i++) { total+=getnumofmoney(p[i]); } cout<<total<<endl; } return 0; }
Java解答
import java.util.Scanner; class Main { private static final int[] m = { 100, 50, 20, 10, 5, 1 }; public static void main(String[] args) { Scanner reader = new Scanner(System.in); int T = reader.nextInt(); for (int i = 0; i < T; i++) { int sum = 0; int first = reader.nextInt(); for (int j = 0; j < first; j++) { int money = reader.nextInt(); sum = sum + giveChange(money); } System.out.println(sum); } } public static int giveChange(int n) { int num = 0; for (int i = 0; i < m.length; i++) { num += n / m[i]; n = n % m[i]; } return num; } }