网易运维开发岗笔试题目

来源:互联网 发布:sql distinct 数量 编辑:程序博客网 时间:2024/06/05 05:12


题目描述:
  假设你去超市买苹果,现在超市有两种包装的苹果:一种一袋里面装6个苹果,另一种是一袋里面装8个苹果。
  
  现在假设你要买88个苹果,就有如下几种组合:
   6个苹果的袋数为:0  8个苹果的袋数为:11
  6个苹果的袋数为:4  8个苹果的袋数为:8
  6个苹果的袋数为:8  8个苹果的袋数为:5
  6个苹果的袋数为:12  8个苹果的袋数为:2

  但是为了总的袋数最少,你就的选择6个苹果的袋数为:0  8个苹果的袋数为:11

如果无法组合,就无法购买


我本人并没有参见网易运维的笔试,只是一个同学问我,于是写了一下,希望对需要的人有所帮助。

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class PurchaseApple {public static void main(String[] args) throws NumberFormatException, IOException{while(true){int n6=0;   //6个袋数 int n8=0;   //8个袋数int Num = 0;   //苹果总的个数BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));System.out.println("请输入购买苹果的总数:");Num = Integer.parseInt(buf.readLine());if(Num%(8)==0){n6=0;n8=Num/8;}else{for (int i = Num/8; i >= 0; i--) {int temp = Num-8*i;if((temp%6)==0){if(n6==0&&n8==0){  //第一次赋值n6 = temp/6;n8 = i; }else if((n6+n8)>(i+(temp/6))){  //将此次苹果袋数的总数与上一次进行比较,如果小于上次袋数的总数,则重新赋值 n6 = temp/6;n8 = i; }}}} System.out.println("最后选择:"+"\r"+"6个苹果的袋数为:"+n6+"  8个苹果的袋数为:"+n8);if(n6==0 && n8==0){System.out.println("无法购买");}}}}



0 0
原创粉丝点击