CodeWars 排队买票的人手持25,50,100,判断当前的零钱是否够找零
2017-04-26 23:57
399 查看
*Description:
The new “Avengers” movie has just been released! There are a lot of people at the cinema box office standing in a huge line. Each of them has a single 100, 50 or 25 dollars bill. A “Avengers” ticket costs 25 dollars.
Vasya is currently working as a clerk. He wants to sell a ticket to every single person in this line.
Can Vasya sell a ticket to each person and give the change if he initially has no money and sells the tickets strictly in the order people follow in the line?
Return YES, if Vasya can sell a ticket to each person and give the change. Otherwise return NO.
Examples:
// * Java *
Line.Tickets(new int[] {25, 25, 50}) // => YES
Line.Tickets(new int []{25, 100})
// => NO. Vasya will not have enough money to give change to 100 dollars
*
另一种方式:
The new “Avengers” movie has just been released! There are a lot of people at the cinema box office standing in a huge line. Each of them has a single 100, 50 or 25 dollars bill. A “Avengers” ticket costs 25 dollars.
Vasya is currently working as a clerk. He wants to sell a ticket to every single person in this line.
Can Vasya sell a ticket to each person and give the change if he initially has no money and sells the tickets strictly in the order people follow in the line?
Return YES, if Vasya can sell a ticket to each person and give the change. Otherwise return NO.
Examples:
// * Java *
Line.Tickets(new int[] {25, 25, 50}) // => YES
Line.Tickets(new int []{25, 100})
// => NO. Vasya will not have enough money to give change to 100 dollars
*
public class Line { public static String Tickets(int[] peopleInLine){ int bill25 = 0, bill50 = 0; for (int payment : peopleInLine){ if(payment==25){ bill25++; } else if(payment==50){ bill25--; bill50++; } else if(payment==100){ if(bill50>0){ bill50--; bill25--; } else{ bill25-=3; } } if(bill25<0 || bill50 <0){ return "NO"; } } return "YES"; } }
另一种方式:
public class Line { public static String Tickets(int[] peopleInLine) { int i, sum=0, change = 0; String a = ""; for(i=0; i<peopleInLine.length; i++) { sum += 25; change = (peopleInLine[i] - 25); sum -= change; if(sum < change) { a = "NO"; } else a = "YES"; } return a; } }
相关文章推荐
- 编写函数,判断两个自然数是否是“自然对数”。所谓“自然对数”是指两个自然数的和与差都是平方数。例:17-8=9 ,17+8=25 ,则17与8就是自然对数。主函数中输出100以内的所有自然对数。
- VC++中如何判断当前用户是否具有管理员权限
- iOS 判断当前时间是否处于某个时间段内
- Android判断当前界面是否是桌面(主页)
- 判断当前线程是否是在主线程中
- C#判断当前运行环境是否64bit
- Python判断当前用户是否是root
- 判断当前网络是否连接
- 15-判断用户输入的日期是否为当前日期(字符串处理)
- android 判断当前是否是飞行模式和侦听airplane mode change
- 判断当前网络是否存在
- 判断用户是否在看当前网页以及判断某个元素是否在网页可视区域
- 判断当前进程是否以管理员程序运行的方法
- iPhone中如何判断当前相机是否可用
- Android判断当前线程是否是主线程的方法
- Android 判断当前线程是否是UI主线程
- 如何判断当前用户是否是系统管理员
- js判断用户是否正在浏览当前页面
- [android开发]判断当前是否有网络
- ios 里如何判断当前应用的定位服务是否可用