Description

史莱姆(Slime),是一种在现代电子游戏与奇幻小说常常出现的虚构生物,最早在1958年同名小说里出现。其流行形象是一种果冻状或半液体状、身体不透明或半透明、可以变换形状、能够分裂或融合的怪物。
  分裂史莱姆是一种可以分裂的史莱姆,每天夜晚,一个健康的史莱姆都可以分裂成两个健康的史莱姆。
  小Q重生成为了一个史莱姆,他想组建自己的史莱姆帝国,如果小Q想要拥有由n(1 ≤n≤ 10^9)n(1 ≤n≤ 10
9
)个人组成的军队,还需要号召多少史莱姆加入他。

Input Description

输入一个数n(1 ≤n≤ 10^9)n(1 ≤n≤ 10^9 ),n是小Q想要组成军队的人数。

Output Description

输出一个整数mm,表示还需要m个史莱姆加入小Q,他才能实现这个目标。

Hint

看第二个样例,通过小Q小Q分裂,1\ ->2\ ->4\ ->8,就可以得到88个史莱姆,所以不需要号召其他的史莱姆,所以答案是00。

题解

这是一道二进制题。举个例子:8的二进制码是1000,所以他能由一个史莱姆产生;5的二进制码是101,有两个“1,因为一个史莱姆只能产生一个“1”(2的n次幂),所以需要两个史莱姆。找到规律后就可以写代码了!
第二种解法,把它当作一道数学题。如果一个数反复/2能够除到尽头(除到1),就说明它是2的n次幂,如果除到某个数得到的是奇数就加1,说明当前位置如果不再号召一个史莱姆就无法达成目标,然后也可以写代码啦(也不会超时)。

参考代码

二进制写法:

#include <iostream>
using namespace std;
int main()
{int n,ans=0;cin >> n;while (n){if (n & 1)//n为奇数时,对应的二进制数最低位一定是1,n&1的结果就是1.n为偶数时,相应的最低位为0,n&1的结果就是0.ans++;n >>= 1;}cout << ans-1 << endl;//减去它本身return 0;
}

数学算法:

#include <iostream>
using namespace std;
int main()
{int n,ans=0;cin >> n;while (n){if (n %2==1)ans++;n =n/2;}cout << ans-1 << endl;//减去它本身return 0;
}

分裂的史莱姆(二进制)相关推荐

  1. 你听说过史莱姆吗??【oj】

    Description Input Output inpu 5 output 1 input 8 output 0 分析: 如果只有小Q一个人的话,就会有1,2,4,8,16,32,,,等情况,是以二 ...

  2. 史莱姆方块java_史莱姆 - Minecraft Wiki,最详细的官方我的世界百科

    史莱姆 大型:16( × 8) 中型:4( ) 小型:1() 行为 攻击型 攻击力 简单: 大型:3( ) 中型:2() 小型:0() 普通: 大型: 4( ) 中型: 2() 小型: 0() 困难: ...

  3. 我的世界java史莱姆生成条件_关于我的世界史莱姆的生成条件分析介绍

    关于我的世界史莱姆的生成条件分析介绍.那下面给大家分享的则是我的世界玩家浅谈史莱姆的生存心得哦~有感兴趣的玩家不妨进来看看下面的介绍吧!希望对大家有所帮助. 游戏园我的世界官方群:325049520 ...

  4. 我的世界java史莱姆生成条件_史莱姆 - Minecraft Wiki,最详细的官方我的世界百科...

    史莱姆 大型:16( × 8) 中型:4( ) 小型:1() 行为 攻击型 攻击力 简单: 大型:3( ) 中型:2() 小型:0() 普通: 大型: 4( ) 中型: 2() 小型: 0() 困难: ...

  5. 牛客竞赛拯救咕咕咕之史莱姆题解

    拯救咕咕咕之史莱姆题解 链接:https://ac.nowcoder.com/acm/problem/206075 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262 ...

  6. 中石油训练赛 - 关于我转生变成史莱姆这档事(dfs)

    题目描述 关于我转生变成史莱姆这档事这部番剧中,上班族的三上悟因为某个事件而作为史莱姆在异世界转生了.在转生时得到了"大贤者"和"捕食者"这两个独特技能.虽然身 ...

  7. coreldraw登录老是出现未知错误_原神:新版本bug频出,史莱姆消失,联机模式提示506错误码...

    这个1.1版本真就"乐事"不断呀,各种bug频出,冻梨有些疑惑,版本上线前真的经过测试了么?不会就开发组跑一遍正常流程,通了就急匆匆地更新了吧. 绝大部分玩家都遭遇了的506错误代 ...

  8. android模拟器 diy,史莱姆机DIY模拟器

    史莱姆机DIY模拟器是一款非常治愈减压的手机游戏.该游戏有很多乐趣,它的玩法就类似与橡皮泥的玩法,不断你怎么捏它都是一个形状,该有戏是一款粘液模拟器,你可以在游戏里捏出各种各样的DIY出来,游戏画面和 ...

  9. 史莱姆区块查找 超简单java代码

    现有的史莱姆区块查找器 打不开史莱姆区块查找器,自己写一个算了 步骤: 1.新建一个txt文件,复制下面代码到文件里并保存,然后文件名连同后缀改为 McCheckSlimeChunk.java 2.打 ...

最新文章

  1. 智能车百度赛道培训第二弹-算法篇
  2. thinkphp 视图(二)变量输出、赋值和替换
  3. 一个基于Mule的企业服务总线的案例(关于JMS)
  4. java微信支付代码_Java微信支付之服务号支付代码示例
  5. oracle连接数达不到上限,Oracle超出最大连接数问题及解决(转)
  6. 【BZOJ2758】Blinker的噩梦,扫描线+splay+链剖
  7. (10)FPGA面试技能提升篇10(MATLAB)
  8. 【Spring学习笔记-0】Spring开发所需要的核心jar包
  9. php mysql日期区间_php – 3个日期范围之间的Mysql查询
  10. Real Estate Photography: Exterior at Twilight 房地产摄影:暮光之城 Lynda课程中文字幕
  11. 大数据的应用领域有哪些
  12. 视频怎么剪辑才好看?学视频剪辑必读入门指南
  13. QQ桌球瞄准器开发(2)创建项目添加主窗体
  14. [Android 4.4.2] 泛泰A870 Mokee4.4.2 20140531 RC1.0 by syhost
  15. 不支持:http://javax.xml.XMLConstants/property/accessExternalStylesheet
  16. Python从图片提取文字
  17. 解“冰刃”的使用方法
  18. 牛客每日练习----あなたの蛙が帰っています,おみやげをまらいました,写真がとどいています
  19. HTML中的 后代选择器 和 子代选择器
  20. 00.关于Android开发的任务分工

热门文章

  1. 磁盘满了,却找不到大文件
  2. 【葡萄城报表】还在为画“类Word文档报表”而发愁吗?
  3. Antd点击select选择框,页面滚动,选项跟着滚动
  4. linux fedora centos,linux – 我为什么要使用CentOS而不是Fedora
  5. 纸壳CMS升级.Net5免费下载
  6. 零基础学习SpringBoot
  7. 物联网全栈开发实战系列文章汇总(共865篇,持续更新-2023.05.02)
  8. Python数据挖掘学习——鸢尾花分类、OneR算法
  9. Debian 11 安装,超详细!
  10. 计算机地图制图相关论文,计算机地图制图原理、特点及发展趋势论文