소스 최적화
딥보라
질문 제목 : 이 소스를 더 최적화(실행속도빠르게)하는 방법좀 알려주세요함수 자체를 식으로써 넣기만 해도 빨라지는건 알겠지만, 그외에 논리적으로 더 빠르게 하는 방법을 아시나요.질문 내용 :
프로그램 간단설명.
1. a의 이진수 표현에서 나오는 1의 개수 x를 찾는다.
2. a보다 작은수 중에서 그 수의 이진수 표현에서 1의 개수가 x와 같고 a에 가장 가까운 수를 하나 찾는다.
3. a보다 큰수 중에서 그 수의 이진수 표현에서 1의 개수가 x와 같고 a에 가장 가까운 수를 하나 찾는다.
-------------------------------------------------------------------------------------------------
#include stdio.h
int binary(int a) {
int x=0;
while(a!=0) {
if(a%2==1) x++;
a/=2;
}
return x;
}
int main(void) {
freopen(input.txt,r,stdin);
freopen(output.txt,w,stdout);
int i,x;
int a,min=0,max=0;
scanf(%d,&a);
x=binary(a);
i=a-1;
while(x!=binary(i)) i--;//이부분에서 함수호출이많이 되는듯하네요.
min=i;
i=a+1;
while(x!=binary(i)) i++; //이부분에서도 함수호출이 ...
max=i;
printf(%d %d,min,max);
return 0;
}