合肥学院计算机科学与技术系课程设计报告2025 ~2025 学年第 二 学期课程 数据结构与算法课 程 设 计 名 称插入运算符等式成立问题学生姓名王见学号0804012025专业班级08 计本(2)班指导老师王昆仑2025 年 6 月课程设计题目123456789=a,在等式的左边任意两个数字之间插入‘+’、‘-’、‘*’,使得等式成立,输出所有算式。如 123-45-67+89=100。一、 问题分析与任务定义1.问题分析在等式左边 123456789 的任意两空之间插入‘+’、‘-’、‘*’,也就是说首先这些数字的先后顺序不能改变。其次,1①2②3③4④5⑤6⑥7⑦8⑧9,①②③④⑤⑥⑦⑧八个位置可以任意插入三种符号,还有一种情况就是不插,这样把无符号也看成一种插入情况,便问题就变成这八个位置插入四种符号的问题,初步估算存在 48=65536 种算式。a 的分析,1①2②3③4④5⑤6⑥7⑦8⑧9 八个位置插入不同的符号后便会出现不同的结果,但是在众多的算式中也会出现相同的结果,另一种方式来解释就是对于给定一个结果 a,可以求出算式。算式虽多,但是有的结果也不一定会出现,对于一些 a 的给定值不一定就能有算式。2.任务定义a 是可以任意取得,所以我们把问题从 123456789=a 插符号等式成立问题转变为 123456789 任意两个位置之间插入符号求结果。所以我们的任务是:首先解决怎么样插入符号求出所有表达式,然后就是表达式求值问题。3.原始数据输入输出格式对于原始数据的输入输出格式问题规定中并没有明确给出,但是由于这里只需要输入 a 的值,a 的值肯定是一个整型的数,只要输入整型数即可。对于输出,有可能对于给定的 a 值有很多种算式,这样就应该用列表来整齐的列出。同时也有可能没有算式成立,这就要求在没有算式符合条件的时候作出提醒。4.程序应能达到的功能对于任一输入的 a 值,通过计算能求出所有表达式结果等于 a 的情况,并且能列出所有符合条件的表达式。假如没有符合条件的提示无计算式。5.测试用例输入1234,预测结果:1+234*5-6+78-9=1234,1234-5-67+8*9=1234,1234+5+67-8*9=1234。输入 100。输入 1000。输入‘c’,结果预测:提示输入不合法。二、 数据结构的选择和概要分析1.数据结构的选择1表达式的存储结构选用字符型数组。在求表达式的时候,应该是从 1 开始到 9 结束,循环进行的。我们必须设置一个结构来存储它,我想到用队列、链表,因为这样可以一个个的入队(插入链表),最后从队列(链表)中猎...