1110: 最少操作数

1.描述

最近,Dr. Kong 又新设计了一个机器人Bill。这台机器人很聪明,会做许多事情。比如你给它任意一个正整数,它可以按照一定的运算规则, 计算出得到1的最少操作次数。

该运算规则是:

           如果n为偶数,将其除以2;如果n为奇数,可以加1或减1;然后一直处理下去,直到得到运算结果为1。

现在假如你给定Bill一个正整数m,你认为它会怎么计算出计算出得到1的最少操作次数。

输入
第一行:n 表示有多少组测试数据。

接下来有n行:每一行有一个正整数m(0<m<100000),表示你给定Bill的正整数。

输出
对于每一行测试数据,输出一行,每行数据为最少操作次数。

样例输入
3
7
15
5
样例输出
4
5
3

2.代码

#include <stdio.h>
#include <stdlib.h>
int i,j,n,m;
int cz(int n)
{if (n==1){return 0;}else if(n%2==0){return 1+cz(n/2);}else if(n==3){return 2;}else if((n+1)%4==0){return 1+cz(n+1);}else{return 1+cz(n-1);}
}
int main()
{scanf("%d",&n);for(i=0; i<n; i++){scanf("%d",&m);j=cz(m);printf("%d\n",j);}return 0;
}

1110: 最少操作数相关推荐

  1. LeetCode 6055. 转化时间需要的最少操作数(贪心)

    文章目录 1. 题目 2. 解题 1. 题目 给你两个字符串 current 和 correct ,表示两个 24 小时制时间 . 24 小时制时间 按 "HH:MM" 进行格式化 ...

  2. LeetCode 1758. 生成交替二进制字符串的最少操作数(DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个仅由字符 '0' 和 '1' 组成的字符串 s . 一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 ...

  3. C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数

    C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在C ...

  4. 1758 生成交替二进制字符串的最少操作数

    题目描述: 给你一个仅由字符 '0' 和 '1' 组成的字符串 s .一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 定义为:如果字符串中不存在相邻两个 ...

  5. LeetCode每日一题——1758. 生成交替二进制字符串的最少操作数

    LeetCode每日一题系列 题目:1758. 生成交替二进制字符串的最少操作数 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个仅由字符 '0' 和 '1' ...

  6. leetcode---1758.生成交替二进制字符串的最少操作数

    目录 题目:给你一个仅由字符 '0' 和 '1' 组成的字符串 s .一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 定义为:如果字符串中不存在相邻两个 ...

  7. LeetCode-1758-生成交替二进制字符串的最少操作数

    1.逐位遍历 我们想要获得最少操作数,实际上只要与两个字符串进行比较即可,一个是1010交替的字符串,一个是0101交替的字符串.其中我们实际上只需要比较一个字符串即可,因为修改成另一个字符串的操作数 ...

  8. LeetCode 2208. 将数组和减半的最少操作次数(优先队列)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个正整数数组 nums .每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半.(注意,在后续操作中你可以对减半过的数继续 ...

  9. LeetCode 1737. 满足三条件之一需改变的最少字符数(计数)

    文章目录 1. 题目 2. 解题 1. 题目 给你两个字符串 a 和 b ,二者均由小写字母组成. 一步操作中,你可以将 a 或 b 中的 任一字符 改变为 任一小写字母 . 操作的最终目标是满足下列 ...

最新文章

  1. linux简单目录,Linux下各目录简单整理
  2. Kali Linux Web***测试之 WebSploit
  3. 常见的web漏洞及其防范(转)
  4. 如何对.NET远程处理框架相关知识简介
  5. vue代码生成器可视化界面_手把手教你基于SqlSugar4编写一个可视化代码生成器(生成实体,以SqlServer为例,文末附源码)...
  6. 20应用统计考研复试要点(part32)--简答题
  7. Ansible-----循环
  8. 用自定义注解做点什么——自定义注解有什么用
  9. 《大话设计模式》读书笔记-第13章 建造者模式
  10. 【华为云技术分享】云容器引擎 CCE权限管理实践
  11. Linux学习笔记---使用MfgTool工具烧写官方系统(一)
  12. 分配给 主机的 Evaluation Mode 许可证已过期。建议升级许可证。
  13. Codeforces Edu Round 68 (Rated for Div. 2)
  14. Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂[转]
  15. 软件测试之测试计划案例
  16. 怎么更改坐标轴标题access_excel图表如何修改x坐标轴数值,excel怎么设置横坐标标题...
  17. 信息录入率百分百上海强化施工现场建筑工人实名制管理
  18. 【个人博客】Hexo个人博客搭建与配置详细教程 + Fluid主题 + Gitee发布
  19. 蒟蒻的单调队列orz,真的蒻
  20. 《计算机组成与系统结构(第二版) 裘雪红 李伯成 西安电子科技大学出版社》课后习题答案(带解析)(七)

热门文章

  1. 【操作系统三】图解网络IO(bio\nio\slect\epoll)
  2. Babel是如何读懂JS代码的
  3. dubbo手册完整版(2019版)
  4. 微信狠起来为什么连自己人都打?
  5. 在网上专利缴纳年费具体步骤详细介绍
  6. Java SE基础(十四)常用API
  7. sas协议内核代码分析
  8. [模式识别].(希腊)西奥多里蒂斯第四版笔记6之__feature generation (1):数据转换和降维
  9. 吉他谱:Kiss the Rain - Sky Guitar Level 2
  10. 毕业设计选择区块链 Fabric方向需要注意哪些