nyoj 412 Same binary weight (bitset 류 활용)
Same binary weight
시간 제한:
300 ms | 메모리 제한:
65535 KB
난이도:
3
묘사 하 다.
The binary weight of a positive integer is the number of 1's in its binary representation.for example,the decmial number 1 has a binary weight of 1,and the decimal number 1717 (which is 11010110101 in binary) has a binary weight of 7.Give a positive integer N,return the smallest integer greater than N that has the same binary weight as N.N will be between 1 and 1000000000,inclusive,the result is guaranteed to fit in a signed 32-bit interget.
입력
The input has multicases and each case contains a integer N.
출력
For each case,output the smallest integer greater than N that has the same binary weight as N.
샘플 입력
1717
4
7
12
555555
샘플 출력
1718
8
11
17
555557
근원
topcoder
업로드 자
낙 괴 영
생각:
1. 오른쪽 에서 왼쪽으로 1 대 01 로 위 치 를 바꾼다.
2. 오른쪽 에 있 는 모든 1 을 맨 오른쪽으로 이동
#include<iostream>
#include<string.h>
#include<algorithm>
#include<stdio.h>
#include<bitset>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
bitset<32>tp(n);
int i,j,cnt=0;
for(i=0;i<32;++i)
{
if(tp[i]) ++cnt;
if(tp[i]&&!tp[i+1])
{
tp[i]=false;
tp[i+1]=true;
j=i;
break;
}
}
--cnt;
for(i=0;i<cnt;++i) tp[i]=true;
while(i<j) tp[i++] =0;
cout<<tp.to_ulong()<<endl;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 멀티태스킹과 인터페이스를 실현하는 클래스의 대상을 인터페이스에 인용하는 방법(추천)우리는 인터페이스 유형의 인용 변수를 정의하여 인터페이스를 실현하는 클래스의 실례를 인용할 수 있다. 클래스 B와 클래스 C의 실례를 인터페이스 인용 a에 부여함으로써 방법이 운행할 때의 동적 귀속을 실현했고'하나의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.