进制转换求距离

进制转换问题

问题描述

给定一个正整数 n,找到并返回 n 的二进制表示中两个相邻1之间的 最长距离 。如果不存在两个相邻的1。返回 0。

思路

个人比较倾向于找到测试用例的二进制的1所在位置存储到数组中,再计算数组中相邻两个数字的差值找最大即可。

程序

public:
    int binaryGap(int n) {
        int cnt = 0, max = 0;
        int shuzu[36] = {0};
        for (int i = 0;n != 0;i++) {
            if (n & 1) {
                shuzu[cnt] = i;
                cnt++;
            }
            n >>= 1;
        }
        for (int i = 1;i < 36;i++) {
            if (shuzu[i] - shuzu[i - 1] > max) {
                if (shuzu[i] - shuzu[i - 1] < 0) {
                    max = shuzu[i - 1] - shuzu[i];
                }
                else {
                    max = shuzu[i] - shuzu[i - 1];
                }

            }
        }
        return max;
    }

代码解析

  1. 分配内存分别用来给数组和记录最大值
  2. 计算二进制数中1的位置,给数组
  3. 计算数组的相邻最值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"1. "打印演示文稿时,可以打印幻灯片的围是〔〕 " " " " " " " " "(A) " " "只能从第一幻灯片到最后一幻灯片 " " " " " " " " "(B) " " "只能打印当前幻灯片 " " " " " " " " "(C) " " "从当前幻灯片到最后一幻灯片 " " " " " " " " "(D) " " "指定的开始幻灯片到指定完毕幻灯片围的所有幻灯片 " " " " " "分值:2 " " " " " "完全正确 得分:2 " " " " " " " " " " " " " " " " "2. "将十进制数97转换为无符号二进制整数等于〔〕 " " " " " " " " "(A) " " "1011111 " " " " " " " " "(B) " " "1100001 " " " " " " " " "(C) " " "1101111 " " " " " " " " "(D) " " "1100011 " " " " " "分值:2 " " " " " "完全正确 得分:2 " " " " " " " " " " " " " " " " "3. "设汉字点阵为32*32,那么100个汉字的字形信息所占用的字节数是〔 " " "〕 " " " " " " " " "(A) " " "3200 " " " " " " " " "(B) " " "32*3200 " " " " " " " " "(C) " " "12800 " " " " " " " " "(D) " " "128K " " " " " "分值:2 " " " " " "完全正确 得分:2 " " " " " " " " " " " " " " " " "4. "Excel可以为单元格添加批注说明,如果需要去除单元格的批注,如此" " "可以执行【开始】"【编辑】组中的命令〔〕 " " " " " " " " "(A) " " "去除容 " " " " " " " " "(B) " " "去除批注 " " " " " " " " "(C) " " "去除全部 " " " " " " " " "(D) " " "去除格式 " " " " " "分值:2 " " " " " "完全正确 得分:2 " " " " " " " " " " " " " " " " "5. "如下网络传输介质属于无线传输介质的是〔〕 " " " " " " " " "(A) " " "光纤 " " " " " " " " "(B) " " "双绞线 " " " " " " " " "(C) " " "红外线 " " " " " " " " "(D) " " "同轴电缆 " " " " " "分值:2 " " " " " "完全正确 得分:2 " " " " " " " " " " " " " " " " "6. "字符'1'的ASCII码的值是49,字符'6'的ASCII码的值是〔〕 " " " " " " " " "(A) " " "65 " " " " " " " " "(B) " " "51 " " " " " " " " "(C) " " "60 " " " " " " " " "(D) " " "54 " " " " " "分值:2 " " " " " "完全正确 得分:2 " " " " " " " " " " " " " " " " "7. "第一代电子计算机使用的电子器件是〔〕 " " " " " " " " "(A) " " "电子管 " " " " " " " " "(B) " " "晶体管 " " " " " " " " "(C) " " "集成电路 " " " " " " " " "(D) " " "超大规模集成电路 " " " " " "分值:2 " " " " " "完全正确 得分:2 " " " " " " " " " " " " " " " " "8. "假如使幻灯片播放时,从"盒状展开〞效果变换到下一幻灯片,需要设" " "置〔〕 " " " " " " " " "(A) " " "自定义放映 " " " " " " " " "(B) " " "放映方式 " " " " " " " " "(C) " " "幻灯片切换 " " " " " " " " "(D) " " "自定义动画 " " " " " "分值:2 " " " " " "完全正确 得分:2 " " " " " " " " " " " " " " " " "9. "为了方便用户记忆和使用,采取域名来命名IP地址,如下域名代码表 " " "示政府机关的是〔〕 " " " " " " " " "(A) " " "GOV " " " " " " " " "(B)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值