https://programmers.co.kr/learn/courses/30/lessons/77885
#include <string>
#include <vector>
#include <cmath>
using namespace std;
vector<long long> solution(vector<long long> numbers) {
vector<long long> answer;
for (int i = 0; i < numbers.size(); i++) {
long long value = numbers[i];
if (value % 2 == 0) {
answer.push_back(value + 1);
}
else {
int index = 0;
long long ans = numbers[i];
while (true) {
if (value % 2 == 1) {
index++;
value /= 2;
}
else {
break;
}
}
index -= 1;
int num = 0;
for (; index > 0; index--) {
ans += pow(2, num);
num++;
}
answer.push_back(ans+1);
}
}
return answer;
}
'프로그래머스' 카테고리의 다른 글
카드 짝 맞추기 C++ (0) | 2022.03.06 |
---|---|
괄호 회전하기 C++ (0) | 2022.03.02 |
외벽 점검 C++ (0) | 2022.02.21 |
신고 결과 받기 C++ (0) | 2022.02.19 |
k진수에서 소수 개수 구하기 C++ (0) | 2022.02.19 |