zoukankan      html  css  js  c++  java
  • 一个华为面试题

    package com.telecom.myshiro.test;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 这个是用来测试一个算法的
     * 有十个空瓶子   每三个空瓶子可以换一瓶汽水  
     * 如果有两个空瓶子,可以和老板借一瓶汽水
     * 如果有n个空瓶 ,可以换多少瓶汽水
     * 
     */
    public class suanfaceshi {
    	
    	
    	int suma=0;
    	/**
    	 * 每三个空瓶子可以换一瓶汽水
    	 * 两个空瓶子可以借一瓶,喝完再还,三个空瓶
    	 */    	  
        	
    	//传进去一个数,给出来这个数对3 求余的余数和这个商
    	//得记录这个 数的商
    	// 返回的集合里面只有两个数,一个是a+b 一个是a 
    	// a+b 是进入下一次的计算, a 是拿出来做加的计算
        public  List<Integer>  doJisuan(int num){
        	List<Integer> nums=new ArrayList<Integer>();
        	  if (num>=2){
        		  int a =num/3;
        		  int b=num%3;
        		  nums.add(a+b);
        		  nums.add(a);
        		  return nums;
        	  }else{
        		  return nums;
        	  }
        }
    	
    	//  在这里给出一个总的空瓶数,返回最多能喝到的瓶数
    	public  int test (int num){
    		
    		 if(num<=2){
    			return 0;
    		  }
    		  suanfaceshi t=new suanfaceshi();
    		  List<Integer> ps=new ArrayList<Integer>();
    		  ps=t.doJisuan(num);
    		  //如果商 和余数之和大于2则可以继续算下去
    		  if(ps.get(0)>2){
    			  suma+=(int)ps.get(1);
    			  return test(ps.get(0));
    		  }
    		  // 如果还有两个空瓶子
    		  if (ps.get(1)==2){
    			  suma=suma+ps.get(1)+1; 
    		  }
    		  // 如果还有一个空瓶子
    		  if(ps.get(1)==1){
    			  suma+=ps.get(1);
    		  }
    		  return suma;
    	}
    	
      public static void main(String[] args) {
    	  suanfaceshi t=new suanfaceshi();
    	  int a= t.test(-3);
    	  System.out.println(a);
    	  
    }
    
    }
    

      

  • 相关阅读:
    js 判断window操作系统 2种方法
    HTML5 16进制颜色
    html5 动画运动 属性
    html5 动画运动 属性
    html5 图片旋转 --位置定位
    html 5 过渡 属性 高度 宽度 颜色 样式等。。。
    jquery 文档操作
    html5 表单 自带验证
    PHP微信授权登录信息
    接口测试-requests高级用法
  • 原文地址:https://www.cnblogs.com/murong/p/5201753.html
Copyright © 2011-2022 走看看