资源简介
C语言编写的无优先级运算问题,C语言编写的无优先级运算问题,C语言编写的无优先级运算问题
代码片段和文件信息
#include
const int MAX = 50;
int num[5]; //输入的数
int flag[10]; //是否已经用过
int oper[5]; //1--‘+‘ 2--‘-‘ 3--‘*‘ 4--‘/‘
int n m;
int p[10]; //临时数组
int bestp[10]; //最优数组
int bestop[10]; //最优操作符
char op[] = {‘ ‘ ‘+‘ ‘-‘ ‘*‘ ‘/‘};
int k; //搜索深度逐渐加深
bool found()
{
int result = p[1];
for(int i=1; i<=k; i++) //计算式子的结果
{
switch(oper[i])
{
case 1:
result += p[i+1];
break;
case 2:
result -= p[i+1];
break;
case 3:
result *= p[i+1];
break;
case 4:
result /= p[i+1];
break;
}
}
return result == m;
}
bool backtrack(int dep)
{
if(dep > k+1) //深度逐渐加深
{
if(found())
{
//copy(p p+n+1 bestp);
// copy(oper oper+n+1 bestop);
return true;
}
else
return false;
}
for(int j=1; j<=n; j++) //可选的数字
{
if(flag[j] > 0)
continue;
p[dep] = num[j];
flag[j] = 1;
for(int i=1; i<=4; i++) //可选的操作符
{
oper[dep] = i;
if(backtrack(dep+1))
return true;
oper[dep] = 0;
}
flag[j] = 0;
p[dep] = 0;
}
return false;
- 上一篇:C语言的机房管理系统
- 下一篇:公交线路最短路径查询
相关资源
- 公交线路最短路径查询
- C语言的机房管理系统
- DWA算法验证(matlab)
- C51程序设计——打地鼠C语言.rar
- 排序算法的实现与比较
- 几种常用的滤波算法C语言filter.c
- 数据结构(C语言版)(第2版)课后习
- 数据结构c语言版建立二叉树,中序非
- C语言课程设计---停车场管理
- c语言课程设计之计算器
- 画线算法C++的实现-鼠标交互
- C语言模拟ATM(结构体版)
- 数据结构和算法案例-欢乐五子棋 C+
- c语言超市管理系统-大学c语言课程设
- c语言课程设计学籍管理系统
- C语言《学生信息管理系统》结构体
- 词频统计c语言代码
- C语言,设备管理系统,用win32写的界
- c语言全套练习题刷题必备
- 15年C语言专升本100题
- C语言——车票管理系统
- c语言程序实现PC端通过USB端口与单片
- mpu9250九轴算法-纯c语言
- 笨方法学习C语言
- 大一第一学期c语言课程设计,黑框框
- MD5算法c++程序设计实现
- C语言实现的DES加密算法
- Cohen-Sutherland 算法线段裁剪
- 产生式系统反向推理算法的设计与实
- C语言经典例题100例含答案
评论
共有 条评论