poj1747Expression
2016-05-29 19:46
211 查看
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;
}
给出一个函数 要求找出各位的表示方法 判断是否能进位。
记*为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;
}
相关文章推荐
- 第六次C++作业
- String.format()用法
- 将博客搬至CSDN
- 碎碎念
- 关于set或map的key使用自定义类型的问题
- c++:参数型别的推导
- 欧拉计划 NO05 ps:4题想过,好做,但麻烦,有时间补充,这题也不难!
- 数据库2
- 欧拉计划(1~3)ps:以后看题一定要认真
- python学习的一些感悟
- 数据库1
- scala学习之apply
- Linux安装及LAMP环境简化配置(Ubuntu)
- Centos7安装JStorm2.1.1
- Java大数类
- Centos7安装JStorm2.1.1
- c++第六次实验
- Spring in action 02 -- 装配 Bean(JavaConfig)遇到的问题
- 【转】iTunes下载速度太慢?两招帮你提速!-- 不错
- Geekban极客班 第三周