三个for循环,注意判断边界,然后就过了。。但是第二题怎么做都超时,希望有人贴一下解法! import java.util.*; public class Main{ public void process(){ Scanner sc = new Scanner(System.in); String pen; String box; String price; String[] penStArr; String[] boxStArr; String[] priceStArr; int colorPen; int whitePen; int colorA; int whiteB; int whiteC; int colorD; int x; int y; int z; int sum1; int sum2; int sum3; while(sc.hasNext()){ pen = sc.nextLine(); box = sc.nextLine(); price = sc.nextLine(); colorPen = Integer.parseInt(pen.split(" ")[0]); whitePen = Integer.parseInt(pen.split(" ")[1]); colorA = Integer.parseInt(box.split(" ")[0]); whiteB = Integer.parseInt(box.split(" ")[1]); whiteC = Integer.parseInt(box.split(" ")[2]); colorD = Integer.parseInt(box.split(" ")[3]); x = Integer.parseInt(price.split(" ")[0]); y = Integer.parseInt(price.split(" ")[1]); z = Integer.parseInt(price.split(" ")[2]); int bound1 = colorPen/colorD; int bound2 = whitePen/whiteC; int bound3 = (colorPen/colorA > whitePen/whiteB)? whitePen/whiteB : colorPen/colorA; int finalSum = 0; int tempSum = 0; for(int i = 0; i<= bound1; i++){ for(int j = 0; j<= bound2; j++){ for(int m = 0; m<= bound3; m++){ if((i*colorD + m*colorA) > colorPen || (j*whiteC+m*whiteB) > whitePen){ break; } tempSum = i*z + j*y + m*x; finalSum = tempSum > finalSum ? tempSum : finalSum; } } } System.out.println(finalSum); } } public static void main(String[] args){ Main m = new Main(); m.process(); } }
点赞 评论

相关推荐

点赞 评论 收藏
分享
轻絵梨花泪沾衣:南泵,大少爷驾到通通闪开
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务