题目链接:http://poj.org/problem?id=1747
题意:给你一个数n,表示有两个位数为n的二进制数,判断n位二进制的任意两个数的和的二进制位数是否大于n,求判断的公式。
AC代码:
#include <stdio.h>
void ans(int n){
if(n==1){
printf("((A0|B0)|(A0|B0))");
return ;
}
printf("((A%d|B%d)|(",n-1,n-1);
ans(n-1);
printf("|((A%d|A%d)|(B%d|B%d))))",n-1,n-1,n-1,n-1);
}
int main(){
int n;
while(~scanf("%d",&n)){
ans(n);
puts("");
}
return 0;
}