zoukankan      html  css  js  c++  java
  • 逢三退一(boolean数组的使用)

    package com.hanqi.count;
    
    // 逢三退一 输出留到最后值的索引;
    public class Count1 {
    
    	//主方法
    	public static void main(String[] args) {
    		Count1 c = new Count1();
    		System.out.println(c.count(6));
    		// 方法有返回值  , 传入数组长度(总共多少数);
    	}
    
    	// 逢3 退1;
    	public int count (int in) {
    		//声明一个boolean数组
    		boolean arr[] = new boolean[in];
    		for (int i = 0; i < arr.length; i++) {
    			arr[i] = true;
    			//把数组的值替换为 ture; 
    		}
    		int count = arr.length ;  //总计数(获取数组长度)
    		int threecount = 0; // 3次循环计数
    		int index =0; //当前数组的序号
    		while (count > 1) {
    			//只要还有 1个以上的值为true 就会一直运行
    			if(arr[ index ]) {
    				threecount ++; // 值为treu 时+1 
    				if(threecount == 3) {
    					arr[index] = false;
    					threecount = 0;
    					count --; //进一遍总数减1 因为逢3去1  ;
    				}
    			}
    			index ++;  // 放在 if判断上面 arr.length 长度为500 但是序号是从0开始所以到499结束;
    			if (index == arr.length) {
    				index = 0;
    			}
    			//index ++;  放在 if判断底下归零后立马加1 所以不行(逻辑问题);
    		}
    		int ret = 0;
    
    		// 遍历 留到最后为true的值得索引
    		for (int i = 0; i < arr.length; i++) {
    			if (arr[i]) {
    				// 值为true时输出i ,此时i为最后一个值的序号;
    				//System.out.println(i);
    				ret = i;
    				break;
    			}
    		}
    		return ret;
    	}
    	
    }
    

     这道题提醒了我 换个思路看看;(用boolean数组解决问题)

  • 相关阅读:
    kubernetes部署1.15.0版本
    搭建时间服务器
    创建mysql容器
    制作带sshd功能的centos镜像
    容器操作
    镜像制作
    elk日志系统
    k8s基于canel的网络策略
    k8s的flannel网络插件配置
    k8s搭建WebUI--Dashborad管理界面
  • 原文地址:https://www.cnblogs.com/bkyljk/p/8125190.html
Copyright © 2011-2022 走看看