首页 > 牛客巅峰赛S2青铜组题解Java版本
头像
六娃lw
编辑于 2020-12-15 21:28
+ 关注

牛客巅峰赛S2青铜组题解Java版本

牛客巅峰赛S2青铜组题解Java版本

3.

打表找规律,求字符串的二进制是否全是'1',循环除2取余,如果余数为0则为偶数返回false。

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 
     * @param n string字符串 三角形的长和高
     * @return bool布尔型
     */
    public boolean judge (String n) {
        // write code here
        int len = n.length();
        if(((n.charAt(len - 1) - '0')&1)==0){return false;}
        String[] newN = {n};
        while(!newN[0].equals("0")){
            boolean isRestOne = div(newN[0], newN);
            if(!isRestOne){return false;}
        }
        return true;
    }

    private boolean div(String n, String[] newN){
        if(n.equals("1")){newN[0]="0";return true;}
        char[] chs = n.toCharArray();
        int len = chs.length;
        int rest = 0;
        StringBuilder sber = new StringBuilder();
        for(int i = 0; i < len; ++i){
            rest = rest * 10 + chs[i] - '0';
            int diver = rest / 2;
            rest = rest % 2;
            sber.append(diver);
        }
        // System.out.println(n);
        if(sber.charAt(0) == '0'){
            newN[0] = sber.substring(1, sber.length());
        }else{
            newN[0] = sber.toString();
        }
        if(rest == 0){return false;}
        else{return true;}
    }
}

全部评论

(5) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期精华帖

热门推荐