[Leetcode] 476. Number Complement
Description:
Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.
Note: The given integer is guaranteed to fit within the range of a 32-bit signed integer. You could assume no leading zero bit in the integer’s binary representation.
Example:
P.S.
Javaの10進数変換:https://www.cnblogs.com/vsign/p/7290594.html
class Solution { public int findComplement(int num) {
//int t = 0;
//int bin = 0;
int r = 0;
int result = 0;
List a = new ArrayList();
List b = new ArrayList();
while(num != 0){
r = num % 2;
num = num/2;
//bin = r * Math().pow(10,t);
a.add(r);
//t++;
}
for (Integer c : a){
if (Integer.valueOf(c) == 1){
int lin = 0;
Integer Lin = Integer.valueOf(lin);
b.add(Lin);
}else {
int yi = 1;
Integer Yi = Integer.valueOf(yi);
b.add(Yi);
}
}
for (int i = 0; i < b.size(); i++){
result = result + ((int)Math.pow(2,(double)i) * Integer.valueOf(b.get(i)));//powで使用する(a,b)はdoubleタイプのデータでなければなりません.Math.powのすべてのデータ型はdoubleタイプでなければなりません.intからdoubleに変換するには(double)iが必要です
}
return result;
}
}
Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.
Note:
Example:
Input: 5
Output: 2
Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.
Input: 1
Output: 0
Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.
P.S.
Javaの10進数変換:https://www.cnblogs.com/vsign/p/7290594.html
class Solution { public int findComplement(int num) {
//int t = 0;
//int bin = 0;
int r = 0;
int result = 0;
List a = new ArrayList();
List b = new ArrayList();
while(num != 0){
r = num % 2;
num = num/2;
//bin = r * Math().pow(10,t);
a.add(r);
//t++;
}
for (Integer c : a){
if (Integer.valueOf(c) == 1){
int lin = 0;
Integer Lin = Integer.valueOf(lin);
b.add(Lin);
}else {
int yi = 1;
Integer Yi = Integer.valueOf(yi);
b.add(Yi);
}
}
for (int i = 0; i < b.size(); i++){
result = result + ((int)Math.pow(2,(double)i) * Integer.valueOf(b.get(i)));//powで使用する(a,b)はdoubleタイプのデータでなければなりません.Math.powのすべてのデータ型はdoubleタイプでなければなりません.intからdoubleに変換するには(double)iが必要です
}
return result;
}
}