题目描述
涛涛立志要做新好青年,他最近在学做菜。由于技术还很生疏,他只会用鸡蛋,西红柿,鸡丁,辣酱这四种原料来做菜,我们给这四种原料标上字母A,B,C,D。
涛涛现在会做的菜有五种:
1、 西红柿炒鸡蛋 原料:AABDD
2、 酸辣鸡丁 原料:ABCD
3、 宫保鸡丁 原料:CCD
4、 水煮西红柿 原料:BBB
5、 怪味蛋 原料:AD
这天早上,开开去早市给涛涛买了一些原料回来。由于事先没有什么计划,涛涛决定,对于现存的原料,每次尽量做菜单上靠前(即编号小)的菜。
现在请你写一个程序,判断一下开开和涛涛中午能吃到哪些菜。
输入
输入描述:
共4个整数a,b,c,d。分别表示开开买的A,B,C,D这4种原料的数量。每种原料不会超过30份。
输入样例:
3
1
2
4
输出
输出描述:
输出5行。其中第i行表示涛涛做的第i种菜的数目。
输出样例:
1
0
1
0
1
HINT:时间限制:1.0s 内存限制:256.0MB
解题思路
就把每种材料的数量放入数组中,每做一道菜减去所消耗的材料就行,因为是从编号小的开始做,所以依据题给的顺序来写while循环就行。
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int a = 0, b=0,c=0,d=0,e=0;//用来记录材料的数量
int []m=new int[4];
for (int i=0;i<m.length;i++){//把每种材料的数量放入数组中
m[i]=scanner.nextInt();
}
while (m[0]>=2&&m[1]>0&&m[3]>=2){//每做一道菜减去相应的材料
m[0]-=2;
m[1]-=1;
m[3]-=2;
a+=1;
}
while (m[0]>0&&m[1]>0&&m[2]>0&&m[3]>0){
m[0]-=1;
m[1]-=1;
m[2]-=1;
m[3]-=1;
b+=1;
}
while (m[2]>=2&&m[3]>0){
m[2]-=2;
m[3]-=1;
c+=1;
}
while (m[1]>=3){
m[1]-=3;
d+=1;
}
while (m[0]>0&&m[3]>0){
m[0]-=1;
m[3]-=1;
e+=1;
}
System.out.println(a);//输出菜的数量
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
}
}
1487

被折叠的 条评论
为什么被折叠?



