이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <stdio.h>
#include <string.h>
#define N	500
#define L	256
void mult2(int *aa) {
	int h;
	for (h = 0; h < L; h++)
		if ((aa[h] *= 2) >= 10)
			aa[h] -= 10, aa[h + 1]++;
}
void add1(int *aa) {
	int h;
	aa[0] += 1;
	for (h = 0; h < L; h++)
		if (aa[h] >= 10)
			aa[h] -= 10, aa[h + 1]++;
}
int main() {
	static int aa[L];
	static char cc[N + 1];
	int n, m, l, i, cnt;
	scanf("%d%*d", &n);
	cnt = 0;
	for (m = 1; m < n; m <<= 1)
		cnt++;
	printf("%d\n", cnt);
	for (m = 1; m < n; m <<= 1) {
		memset(aa, 0, L * sizeof *aa);
		for (i = n - 1; i >= 0; i--) {
			mult2(aa);
			if (i % (m * 2) < m)
				add1(aa);
		}
		l = L;
		while (l > 1 && aa[l - 1] == 0)
			l--;
		for (i = l - 1; i >= 0; i--)
			cc[l - 1 - i] = aa[i] + '0';
		printf("A=(A&%s)+((A>>%d)&%s)\n", cc, m, cc);
	}
	return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
popcount.c: In function 'main':
popcount.c:29:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |  scanf("%d%*d", &n);
      |  ^~~~~~~~~~~~~~~~~~| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |