leetcode 1009. 十进制整数的反码(Complement of Base 10 Integer)

目录

  • 题目描述:
  • 示例 1:
  • 示例 2:
  • 示例 3:
  • 解法:

题目描述:

每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 "101"11 可以用二进制 "1011" 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。

二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 "101" 的二进制反码为 "010"

给定十进制数 N,返回其二进制表示的反码所对应的十进制整数。

示例 1:

输入:5
输出:2
解释:5 的二进制表示为 "101",其二进制反码为 "010",也就是十进制中的 2 。

示例 2:

输入:7
输出:0
解释:7 的二进制表示为 "111",其二进制反码为 "000",也就是十进制中的 0 。

示例 3:

输入:10
输出:5
解释:10 的二进制表示为 "1010",其二进制反码为 "0101",也就是十进制中的 5 。

提示:

  • 0 <= N < 10^9

解法:

class Solution {
public:
    int bitwiseComplement(int N) {
        int res = 0;
        int multi = 1;
        if(N == 0){
            return 1;
        }
        while(N != 0){
            if((N&1) == 0){
                res += multi;
            }
            N >>= 1;
            multi <<= 1;
        }
        return res;
    }
};

原文地址:https://www.cnblogs.com/zhanzq/p/10675460.html

时间: 2024-10-08 16:02:10

leetcode 1009. 十进制整数的反码(Complement of Base 10 Integer)的相关文章

#Leetcode# 1009. Complement of Base 10 Integer

https://leetcode.com/problems/complement-of-base-10-integer/ Every non-negative integer N has a binary representation.  For example, 5 can be represented as "101" in binary, 11 as "1011" in binary, and so on.  Note that except for N =

Leetcode-1012 Complement of Base 10 Integer(十进制整数的补码)

1 #define _for(i,a,b) for(int i = (a);i < (b);i ++) 2 class Solution 3 { 4 public: 5 int bitwiseComplement(int N) 6 { 7 if(N==0) 8 return 1; 9 string s; 10 while(N) 11 { 12 s+= N%2+'0'; 13 N/=2; 14 } 15 reverse(s.begin(),s.end()); 16 17 _for(i,0,s.si

128th LeetCode Weekly Contest Complement of Base 10 Integer

Every non-negative integer N has a binary representation.  For example, 5 can be represented as "101" in binary, 11 as "1011" in binary, and so on.  Note that except for N = 0, there are no leading zeroes in any binary representation.

数组-08. 字符串转换成十进制整数(15)

1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int main(){ 5 string s; 6 int i,sum=0; 7 bool flag=false,f=false; 8 getline(cin,s); 9 for(i=0;s[i]!='#';++i){ 10 if(s[i]=='-'&&!flag) 11 f=true; 12 else if(s[i]<='9'&a

数组-08. 字符串转换成十进制整数

数组-08. 字符串转换成十进制整数(15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 张彤彧(浙江大学) 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出.如果过滤后字符串的首字符为“-”,代表该数是负数. 输入格式: 输入在一行中给出一个以#结束的非空字符串. 输出格式: 在一行中输出转换后的十进制数.题目保证输出在长整型范围内.

把十进制整数转换为r(r=2)进制输出(顺序栈实现)

上周的第二个作业补上~~ 上周的要求: 1.给出顺序栈的存储结构定义. 2.完成顺序栈的基本操作函数. 1)      初始化顺序栈 2)      实现入栈和出栈操作 3)      实现取栈顶元素和判空操作 把十进制整数转换为r(r=2)进制输出 3.编写主函数实现基本操作函数功能,并设置测试数据,测试合法和非法数据的输出结果. 4.程序调试运行并保存输出结果. 5.整理并提交实验作业. 1 #include <cstdio> 2 #include <cstring> 3 #d

5-2?字符串转换成十进制整数

5-2 字符串转换成十进制整数   (15分) 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出.如果在第一个十六进制字符之前存在字符"-",则代表该数是负数. 输入格式: 输入在一行中给出一个以#结束的非空字符串. 输出格式: 在一行中输出转换后的十进制数.题目保证输出在长整型范围内. 输入样例: +-P-xf4+-1!# 输出样例: 这个题有一个坑点: 就是如果是0的话前面没有负号 -390

十六进制字符串转十进制整数

十六进制字符串转十进制整数 编写一个函数,函数接收一个字符串,是由十六进制数组成的一组字符串,函数的功能是把接到的这组字符串转换成十进制数字.并将十进制数字返回. #include <iostream> using namespace std; // 十六进制字符串的最大长度 #define MAX_HEX_STR_LEN 100 bool hexToDec(char shex[], int & idec) { size_t i = 0, len = 0; int mid = 0; l

Ex 2_25 n位十进制整数转换为二进制形式..._第四次作业

(a)   当n=1时,(10)d=(1010)b 当n=2时,(100)d=(10)d x (10)d=(1010)b x (1010)b 当n=4时,(10000)d=(100)d x (100)d=(1010)b x (1010)b x (1010)b x (1010)b - 因此z=pwr2bin(n/2) T(n)=T(n/2)+(cn/2)log23=>T(n)=O(nlog23) (b) 若十进制整数x的位数等于1,则返回binary[x] 假设位数为n(n>1且n为2的幂),则