【LeetCode】每日一题 - 负二进制转化

ops/2024/9/23 7:00:27/

负二进制转换

给你一个整数 n ,以二进制字符串的形式返回该整数的 负二进制(base -2表示。

注意,除非字符串就是 "0",否则返回的字符串中不能含有前导零。

示例 1:

输入:n = 2
输出:"110"
解释:(-2)2 + (-2)1 = 2

示例 2:

输入:n = 3
输出:"111"
解释:(-2)2 + (-2)1 + (-2)0 = 3

示例 3:

输入:n = 4
输出:"100"
解释:(-2)2 = 4

提示:

  • 0 <= n <= 109

思路:将一个十进制的数 n 转化为任意 x 进制都可以使用这样的思路。

第一步:先得到转化为进制结果的最后一位 t :n % x (但如果得到的最后一位是负数的话,需要根据语言特性将其转化为正数),然后将最后一位添加到目标字符串中,然后将这个最后一位 t 在 n 中减去。

第二步:将这个十进制数按 x 进制的规则右移一位:n /= x,然后重复得到最后一位并添加的操作,最终可以得到一个字符串。

第三步:因为每次得到的都是理论上的最后一位,所以最后需要将字符串逆置,就得到了最终答案!

力扣代码:

class Solution {
public:string baseNeg2(int n) {if(n == 0) return "0";int x = -2;string s;while (n) {if (n % x == 0) // 最后一位数是 0s += "0";else {// 将最后一位减去, 因为 x 进制的最后一位在权重上和十进制是一样n -= 1;  s += "1";}n /= x; // 将 n 右移一位}reverse(s.begin(), s.end()); // 逆序字符串return s;}
};


http://www.ppmy.cn/ops/22918.html

相关文章

python代码实现kmeans对鸢尾花聚类

导入第三方库和模型 from sklearn import datasets import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans2、创建画图函数 def draw_result(train_x, labels, cents, title):n_clusters np.unique(labels).shape[0]#获取类别个数color …

web前端学习笔记4

4. 盒子模型 4.0 代码地址 https://gitee.com/qiangge95243611/java118/tree/master/web/day044.1 什么是盒子模型(Box Model) 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。 CSS盒模型本质上是一个盒子,封装周围的HTML元素,…

使用mmdetection来训练自己的数据集(visdrone)(一)

环境&#xff1a; 创建虚拟环境 conda create -n mmdet python3.8 -y安装torch https://pytorch.org/get-started/previous-versions/ pip install torch2.1.0 torchvision0.16.0 torchaudio2.1.0 --index-url https://download.pytorch.org/whl/cu121torch …

OpenHarmony语言基础类库【@ohos.util.HashMap (非线性容器HashMap)】

HashMap底层使用数组链表红黑树的方式实现&#xff0c;查询、插入和删除的效率都很高。HashMap存储内容基于key-value的键值对映射&#xff0c;不能有重复的key&#xff0c;且一个key只能对应一个value。 HashMap和[TreeMap]相比&#xff0c;HashMap依据键的hashCode存取数据&…

Midjourney与waifu2x双剑合璧:完美打造超高清动漫图像

在追求完美的动漫图像时&#xff0c;质量和分辨率是两个关键因素。Midjourney&#xff08;一个神秘而强大的AI图像生成工具&#xff09;与waifu2x&#xff08;一个专门用于放大动漫风格图像的AI工具&#xff09;的结合使得创造超高清的动漫图像变得触手可及。本文将引导您如何使…

2024.4.28力扣每日一题——负二进制转换

2024.4.28 题目来源我的题解方法一 进制转换方法二 模拟进位 题目来源 力扣每日一题&#xff1b;题序&#xff1a;1017 我的题解 方法一 进制转换 对于以-2为基数的系统&#xff0c;可以这样理解&#xff1a;在-2进制中&#xff0c;每一位的权重是-2的幂。这与传统的二进制表…

Web前端开发之CSS_1

CSS选择器字体属性背景属性文本属性表格属性 1. CSS 1.1 CSS简介 CSS&#xff08;Cascading Style Sheets&#xff09;层叠样式表&#xff0c;又叫级联样式表&#xff0c;简称样式表。CSS文件后缀名为 .css 。CSS用于HTML文档中元素样式的定义。使用CSS可以让网页具有美观一致…

linux运行jar

安装Java环境 下载Java安装包 首先&#xff0c;需要从Oracle官网或其他可信渠道下载适用于Linux系统的Java安装包。根据系统架构&#xff08;32位或64位&#xff09;选择合适的安装包。 安装Java 下载完成后&#xff0c;通过终端进入安装包所在目录&#xff0c;使用tar命令…