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数组解决问题)

  • 相关阅读:
    变量的创建和初始化
    HDU 1114 Piggy-Bank (dp)
    HDU 1421 搬寝室 (dp)
    HDU 2059 龟兔赛跑 (dp)
    HDU 2571 命运 (dp)
    HDU 1574 RP问题 (dp)
    HDU 2577 How to Type (字符串处理)
    HDU 1422 重温世界杯 (dp)
    HDU 2191 珍惜现在,感恩生活 (dp)
    HH实习 acm算法部 1689
  • 原文地址:https://www.cnblogs.com/bkyljk/p/8125190.html
Copyright © 2011-2022 走看看