首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【优质题解】题解1110:2^k进制 减法思维(C语言描述)

题目描述 设r是个2^k 进制,并满足以下条件: (1)r至少是个2位2^k 进制。 (2)作为2^k 进制最后一位外,r每一位严格小于它右边相邻那一位。...我们再从另一角度作些解释:设S是长度为w 01字符串(即字符串S由w个“0”或“1”组成),S对应于上述条件(3)q。...输入 只有1行,为两个正整数,用一个空格隔开: 只有1行,为两个正整数,用一个空格隔开:k w 输出 1行,是一个正整数,为所求计算结果,即满足条件不同r个数(用十进制数表示),要求最高位不得为...0,各数字之间不得插入数字以外其他字符(例如空格、换行符、逗号等)。...因为最高位以外,别的位置范围都是从 1 到 进制减去当前位置 所以先计算最高位以外排列,再计算最高位排列 注意事项 最高位排列应该用减法思维,即拿k=3,w=8来说,最高位只能取

90120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    程序员圣诞节烧脑谈

    平日生活,除了占绝对优势十进制外,我们还使用十二进制(买袜子鸡蛋什么),六十进制(计时以及角度分和秒),三百六十进制角度),三百六十五进制(计日)。...有些文化中会使用二十进制,比如 84 非要说成四个二十和一个四,自己给自己找麻烦。程序员生活十进制不是主流,二进制,十六进制和八进制才是王道。...衍生出来 64 进制,二十六个字母大小写加十个数字再加两个符号,也堂而皇之出现在主流圈子里,之后,为了解决 IlO0 傻傻分不清问题,比特币又从 64 进制衍生出来 58 进制。...x2 − 1 放成十进制来看,是 (100-1),而 x − 1 是 (10-1),出来结果是 11,换算回来是 x + 1。轻松搞定!...哈,0.5 进位意味着个位数置一,十位就进二,然后百位进四,一路无穷下去。这是个奇怪进位系统,任何都无穷无尽。 那么 1.5 进制呢?也就是说逢三进二?

    46540

    【JavaSE专栏25】进制转换那些事,十进制转R进制、R进制转十进制是什么操作?

    ---- 一、什么是进制转换 1.1 进制 进制是一种数学表示方法,用于表示数字基数和位数。常见数学系统,我们使用十进制系统,也称为基数为 10 进制系统。...它使用了 0 - 9 十个数字来表示所有的数字。例如,数字 42 十进制系统中表示为 42 ,其中 4 代表 4 个十, 2 代表 2 个一。...十进制转换为二进制:使用 2 取余法,将十进制反复除以 2 ,直到商为 0 ,然后将余数倒序排列。...例如,计算机数据存储和处理通常是以二进制形式进行,但在人类角度来看,使用十进制更加直观。因此,进制转换可以帮助我们不同进制之间进行数据转换和理解。...注意,转换过程,我们将R进制从右往左进行遍历,将每一位数值乘以相应权重后累加到结果,权重从 1 开始,每次乘以 R 值。

    33130

    javascript入门到进阶 - javascript词法文法

    「注释」 注释用来源码增加提示、笔记、建议、警告等信息,可以帮助阅读和理解源码。调试时,可以用来将一段代码屏蔽掉,防止其运行。 JavaScript中有两种生成注释方法。...另一方面,如下用法是不允许。因为它是一个标识符,而标识符文法定义是保留字以外标识符名。标识符用于函数声明式和函数表达式. function import() {} // Illegal....如果0b之后有除了0或1以外数字,将会抛出SyntaxError:“Missing binary digits after 0b”。...在下面这段,由于b和++之间出现了一个行终止符,所以++未被当成变量b后置运算符。...a = b ++c // 将被ASI转换为 a = b; ++c; 当语句中包含语法限制产品后跟一个行终止符时候,将会在结尾插入一个分号。

    76320

    【蓝桥杯备赛系列 | 简单题】十六进制转八进制、十六进制转十进制十进制转十六进制 (手撕)

    输出格式   输出n行,每行为输入对应八进制正整数。 【注意】   输入十六进制不会有前导0,比如012A。   输出八进制也不能有前导0。...8位十六进制数字符串,将它转换为正十进制后输出。   ...但是平时还是建议大家练练手撕、 tips: 这里使用 BigInteger 可以避免由于数值太大无法转换需求,Integer parseInt 遇到太大数值会报错,无法转换 三、十进制转十六进制...(循环 整除 求余 判断) 资源限制 内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述   十六进制程序设计时经常要使用到一种整数表示方式...十六进制计数方法是满16进1,所以十进制16十六进制是10,而十进制17十六进制是11,以此类推,十进制30十六进制是1E。

    2.5K40

    蓝桥杯 2^k 进制 (动态规划+大数求和)-------C语言—菜鸟级

    /* 设r是个2^k 进制,并满足以下条件: (1)r至少是个2位2^k 进制。 (2)作为2^k 进制最后一位外,r每一位严格小于它右边相邻那一位。...我们再从另一角度作些解释:设S是长度为w 01字符串(即字符串S由w个“0”或“1”组成),S对应于上述条件(3)q。...输入 只有1行,为两个正整数,用一个空格隔开: k w 输出 1行,是一个正整数,为所求计算结果,即满足条件不同r个数(用十进制数表示),要求最高位不得为0,各数字之间不得插入数字以外其他字符...(提示:作为结果正整数可能很大,但不会超过200位) 样例输入 3 7 样例输出 36 思路: 动态规划 与 K好数 差不多 再加上 对 大数相加 办法 因为数字极大 //按题目要求 就是...有几组 即 除了最高位余下还有几位 2^3 7 2进制 //7分成 1 3 3 有两组完整 k=(1<<k)-1;//确定进制 k 为最大该进制

    40020

    进制基本介绍以及进制转换和计算

    我们知道,计算机使用是二进制来存储信息。而在我们现实生活,一般是用十进制来表示一系列数值。同时更加精细领域还存在着像八进制,十六进制等等一些进制。那么进制究竟是什么?...生活中常见进制有十进制、二进制、八进制、十六进制。 计算机,数据都是以二进制形式存储。 进制主要包括三个部分:数位、基数、位权 数位 指数字符号一个中所处位置。...十进制,位权是10^n 二进制,位权是2^n … 二、常见进制介绍以及之间转换 1.表示 一般情况下,在数字后面用特点字母(下标)表示该进制 二进制;B 十进制:D(可以省略O)...2.限制 十进制每位数字范围:0~9 二进制每位数字范围:0~1 八进制每位数字范围:0~7 十六进制每位数字范围:0~F(f) 3.转换 其他进制十进制 其他进制按位权展开...例如: 十进制转其他进制 整数部分:二取余法 原理:任何一个除以2得到余数都是0或1 例如(十转二): 小数部分:乘二取整法 原理:当小数与2相乘时不可能大于1。

    27610

    十进制与二进制转换(负数+正数)

    一、十进制正数二进制转换 1、9利用“2取余法,余数逆序排列”,得到原码。 2、则9二进制为 0000 1001。...二、十进制负数二进制转换 1、先将9利用“2取余法,余数逆序排列”,得到原码。 2、将上一步骤得到原码取反(1取0,0取1,数个数字除外,一直为1),得到反码。...3、反码基础上,加1得到补码。 对应补码为:11110111。 4、十进制负数转二进制方法总结如下: 2取余,逆序排列 。 01互换,原码取反码 。 反码+1,得补码。...总结: 1、二进制转十进制十进制转二进制互为逆操作; 2、二进制由于只有0和1,没有符号,其实首位即代表其符号; 四、算法题 1、HJ15 求int型正整数在内存存储时1个数 描述 输入一个...数据范围:保证 32 位整型数字范围内 输入描述: 输入一个整数(int类型) 输出描述: 这个数转换成2进制后,输出1个数 示例 输入:5 输出:2 输入:0 输出:0 代码: public

    37520

    14万程序员挑战过算法题,看看你处于哪个阶段?(附答案)

    大概意思是1 个人只需要通过6 个中间人就可以和世界上任何1 个人产生间接联系。本题将试着找出数字好友(这里并不考虑亲密指数)。...从1~N 任意选取一个“合数”,求从它开始,要经历几层好友,才能和其他所有的产生联系(所谓“合数”是指“有1 以及自身以外约数自然”)。...这里,我们思考一下十进制0~9 这10 个数字各出现1 次IP 地址(像正常情况一样,省略每组数字首位0。...Q2答案 55 满足条件组合为: [4, 26, 39, 33, 55, 35, 49] Q3解题思路 按照题意,用十进制数表示时要使用0~9 这10 个数字各1 次,那么最高位是0 以外9 种情况...用十进制数表示时候,如果以点号分割各部分左右对称,那么整体也就左右对称,因而只需要调查0~255 这些对应二进制左右对称就可以了。

    1K40

    详解HarmonyOS 原生应用里进制转换神器

    进制,作为数字表达形式,不同场景中发挥着独特作用。...数据传输:通信系统,数据通常以二进制形式设备和网络之间传输。 数字逻辑电路:在数字电子学,逻辑门(如 AND、OR、NOT 等)和触发器都是以二进制逻辑为基础构建。...十进制转二进制: 2 取余法,例如十进制 10, 2 直到商为 0 时,从下往上读取余数得到二进制 1010,如下图所示。...2)八进制与十进制转换方法 八进制转十进制:同样依据位权原理,八进制每一位乘以 8 相应幂次然后相加。 十进制转八进制: 8 取余法,直到商为 0 时,从下往上读取余数得到八进制。...3)十六进制与十进制转换方法 十六进制转十进制:十六进制 A ~ F 分表表示 10 ~ 15,位权计算时同样乘以 16 相应幂次,然后相加。

    17610

    【自然语言处理】NLP入门(八):1、正则表达式与Python实现(8):正则表达式元字符:.、[]、^、$、*、+、?、{m,n}

    :表示换行符以外任意字符 与“.”类似(但不相同)一个符号是“\S”,表示不是空白符任意字符。...'] # 匹配i后面跟换行符以外任意字符形式 print(re.findall(r'i....下面是一个关于它示例: 元字符方括号不起作用,例如:[akm$]和[m.]中元字符都不起作用; 方括号内^ 表示补集,匹配不在区间范围内字符,例如:[^3]表示3以外字符。...\:反斜杠后面可以加不同字符以表示不同特殊意义 \b:匹配单词边界(单词开头或结尾) \B:与\b相反,匹配非单词边界 \d:匹配任何十进制数字,相当于字符集 [0-9] \D:与\d相反,匹配任何数字字符...是语法错误,正则表达式中使用两个问号 "??” 是无效。 9.“{m,n}”:表示至少有m个重复,至多有n个重复。m,n均为十进制 忽略m表示0个重复,忽略n表示无穷多个重复。

    8810

    【MySQL】01_运算符、函数

    ,不管是否能除尽,结果都为一个浮点数; 一个除以另一个,除不尽时,结果为一个浮点数,并保留到小数点后4位; 乘法和除法优先级相同,进行先乘后操作与先后乘操作,得出结果相同。...4二进制为0000 0100,左移 两位为0001 0000,对应十进制为16。 运算符优先级 ---- 数字编号越大,优先级越高,优先级高运算符先进行计算。...例如,从一个文本文件中提取电话号码,查找一篇文章重复单词或者替换用户 输入某些敏感词语等,这些地方都可以使用正则表达式。正则表达式强大而且灵活,可以应用于非常 复杂查询。...字符集合]” 匹配不在指定集合任何字符。...# fruits表,查询f_id字段包含字母a~e和数字1~2以外字符记录,SQL语句如下: SELECT * FROM fruits WHERE f_id REGEXP '[^a-e1-2]'

    2.4K30

    词汇结构

    以下各节将介绍这些作品每一个。句法语法只有标记元素是重要。 空白 空格用于分隔 M 文档注释和标记。...以外任何 Unicode 字符 delimited-comment: /* delimited-comment-text opt asterisks / delimited-comment-text...字符序列/*,并*/有一个单行注释没有任何特殊含义,字符序列//,并/*有一个分隔符注释没有任何特殊含义。 文本文字不处理注释。...数字面:       十进制,文字       十六进制,文字 十进制数字面:       小数位数 . 小数位数指数部分选择 ....十进制数字字符:       Nd 类 Unicode 字符 连接字符:       Pc 类 Unicode 字符 格式字符:       Cf 类 Unicode 字符 带引号标识符可用于允许将任何零个或多个

    1.2K10

    LeetCode每日一练(十进制整数反码)

    注意, N = 0 外,任何二进制表示中都不含前导零。二进制反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制 “101” 二进制反码为 “010”。...题目要求将一个非负整数二进制反码表示转为十进制,比如,5二进制位101,那么其反码形式为010,以该反码为二进制所对应十进制整数为2,所以输入整数5,应该得到整数2。...可以先来分析一下: 对于十进制11,其转为二进制过程如上图所示,让11除以2,得到商5,余数1,;让5除以2,得到商2,余数1;最后让2除以2,得到商1,余数0,二进制为1011。...由此得出结论,不断地让输入除以2,直至余数为0停止,让最后一次除法商从下至上拼接所有的余数即可得到二进制,如下所示: 但在代码实现过程,我们只能从上往下,并不能提前得知后面的商和余数,解决办法也很简单...表示十进制为7,由此得出结论,只需要全1二进制大于了输入整数,那么其位数就一定与之相同。

    32510

    JavaScript(二)

    ,除了十进制以外,整数还可以通过八进制或十六进制表示。...十六进制字面值前两位必须是 0x,后面跟十六进制数字(0-9,a-f)。字母大小写都可以。 进行数字计算时,所有八进制和十六进制表示数值都将被转换为十进制。...这 3 个函数对于同样输入会返回不同结果。...NaN 如果是字符串,则遵循下面规则: 如果字符串只包含数字(包括正负号),则将其转换为十进制数值(忽略前导 0) 如果字符串包含有效浮点数格式,则将其转换为对应浮点数值(忽略前导 0) 如果字符串包含有效十六进制格式...,则将其转换为相同大小十进制整数值 如果是空字符串,则转换为 0 如果字符串包含上述之外字符串,则转换为 NaN 如果是对象,则调用 valueof() 方法,依次按上述规则转换,如果结果为 NaN

    53720

    Java入门(8)-- 数字处理类

    Java中使用java.text.DecimalFormat格式化数字,DecimalFormat是NumberFormat一个子类,用于格式化十进制数字,它可以将一些数字格式化为整数、浮点数、百分等...一般情况下,可以实例化DecimalFormat对象时传递数字格式,也可以通过DecimalFormat类applyPattern()方法来实现数字格式化。...三角函数方法 注:角度与弧度转换通常是不精确。 2. 指数函数方法 3. 取整函数方法 4....8.4.1 BigInteger BigInteger类型数字范围较Integer类型数字范围要大得多,BigInteger支持任意精度整数,在运算BigInteger类型可以准备地表示任何大小整数值而不会丢失信息...BigInteger类中封装了多种操作,除了基本加、减、乘、操作之外,还提供了绝对值、相反、最大公约数以及判断是否为质数等操作。

    1K30

    C语言数据类型定义

    二反序取余法:将十进制每次除以2 取出余数 按照结果倒叙依次获取结果 二进制转十进制: 权值法:将二进制各个位数从0位开始乘以2N幂 将各个位数结果相加 八进制: ​ 八进制逢八进一,所有的数组是...: 十六反序取余法:将十进制每次除以16 取出余数 按照结果倒叙依次获取结果 8421法则: 将各个位数二进制用十进制数字 】来表示多位二进制 通过【数字 】相加就可以得到二进制数据...8 1000 4 100 2 10 1 1 1000 100 ​ 10 ​ 1 ———— 1 1 1 1 进制程序打印: int a=10;//十进制10 int b=010;//八进制10...程序定义一个八进制需要在数前面加上0区分 int c=0x10;//十六进制10程序定义一个十六进制需要在数前面加上0x区分 int d=0X10;//十六进制10程序定义一个十六进制需要在数前面加上...格式化输入printf("%c",变量)通过占位符%c来接收 每一个char类型都对应在ASCII中有具体值 例如:数字【0】对应ASCII值为48 字母【A】对应ASCII值为65 字母【

    1.3K30

    数组数字出现次数 II

    一、题目一个数组 nums 一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次数字。...二、示例2.1> 示例 1:【输入】nums = [3,4,3,3]【输出】42.2> 示例 2:【输入】nums = [9,1,7,9,7,9,7]【输出】1限制:1 <= nums.length <...= 100001 <= nums[i] < 2^31三、解题思路根据题目描述,数组只有1个数字只出现一次,而其他数字均出现了三次。...【针对十进制0】,我们用00表示(hi=0,lo=0);【针对十进制1】,我们用01表示(hi=0,lo=1);【针对十进制2】,我们用10表示(hi=1,lo=0);那么如果一直执行加1并与3取余操作的话...数组每个数都执行如下操作,就可以获得最终每一位计算后值:lo = lo ^ num & ~hi;hi = hi ^ num & ~lo;而由于出现3次数字每一位肯定都是0,而只有出现了一次才不为

    14720
    领券