C언어/C언어 예제

10진수를 2진수로 변환, 1의 개수 구하기, 반복문, 나누기, 나머지 연산 사용 불가

언제나 휴일 빅데이터 언제나휴일 2020. 4. 12. 01:02
반응형

소스 코드

#include <stdio.h>
int BinaryCounter(int num,int count)
{	
	int half_num = num >> 1;
	int isone = 0;
	if (num == 0)
	{
		return count;
	}

	isone = (num != (half_num + half_num));
	if (isone)
	{
		count++;
	}
	count = BinaryCounter(half_num,count);
	printf("%d", isone);
	return count;
}
void TestBinaryCounter(int num)
{
	int count = 0;
	printf("=== Test number: %d  \n", num);
	count = BinaryCounter(num, 0);
	printf("\n이진수에서 1의 개수:%d\n", count);
	printf("-----------------------\n");

}
int main()
{
	TestBinaryCounter(6);
	TestBinaryCounter(24);
	TestBinaryCounter(17);
	TestBinaryCounter(31);
	system("pause");
	return 0;
}


실행 결과

반응형