代码
#include<stdio.h>
int main(){
int a[100]={0},i=0,Q[3]={0},n=0,j=0;
char c;
scanf("%d",&n);
do{
scanf("%d",&a[i]);
if(a[i]==25) Q[0]++;
if(a[i]==50) {
Q[1]++;
Q[0]--;
}
if(a[i]==100) {
if(Q[1]>0){
Q[1]--;
Q[0]--;
}
else Q[0]-=3;
}
for(j=0;j<3;j++){
if(Q[j]<0) {
printf("False\n");
return 0;
}
}
i++;
}while(c=getchar()==' ');
printf("True\n");
return 0;
}
友情提示
1、这个题目的测试用例是错误的。所以纵使你的代码正确也无法提交成功。此代码是正确代码,但无法提交成功,予你参考。
2、实际输入格式是第一排n,第二排以空格隔开的不同钱币面额。是的,题目中的输入格式也有问题。已经懒得喷了。
3、Q数组是存放钱币张数。Q[0]存放的25元的张数,Q[1]存放的50元的张数,Q[2]存放的100元的张数。
4、给100元找钱的时候优先了50元+25元的方案,是因为50元只有在给100元的时候就业,所以咱们能把50花出去就花出去。
5、是排队找钱,不是一窝蜂都上来把钱都收完再一个个找,所以一边输入就要一边算此时是否能找钱。
题目描述
小伊同学在暑假的时候来到电影院打工。正巧赶上电影院,一部新的电影要上映。题目中会给你一个整数数组 num
代表排队买票的人付的钱。来排队买票的人都只会拿出一张 25
,50
或 100
元的钞票购买电影票。电影票的价格是 25
元,小伊同学刚开始手里没有初始金钱,现在请你帮小伊同学编写代码,判断一下她是否可以正常的给这 n
个人售票并找零?
输入输出格式
输入格式 一个整数数组。
输出格式 True
或False
。
输入输出样例1
输入 25
输出 True
输入输出样例2
输入 50 25
输出 False
说明/提示
无