poj1747Expression
来源:互联网 发布:身份证录入破译软件 编辑:程序博客网 时间:2024/06/05 18:05
http://poj.org/problem?id=1747
给出一个函数 要求找出各位的表示方法 判断是否能进位。
记*为n=k-1时的表达式,
则n=k时,表达式为
((An-1|Bn-1)|(*|((An-1|An-1)|(Bn-1|Bn-1))))。
递归函数的结构为:先输出*左边的部分,然后输出*,再输出*右边的部分。
边界条件为n=1,此时表达式为((A0|B0)|(A0|B0))。
#include <stdio.h>void solve(int x){ if(x==1){printf("((A0|B0)|(A0|B0))");return ;} printf("((A%d|B%d)|(",x-1,x-1); solve(x-1); printf("|((A%d|A%d)|(B%d|B%d))))",x-1,x-1,x-1,x-1);}int main(){int n; while(~scanf("%d",&n)){ solve(n); printf("\n"); } return 0;}
0 0