用加减乘除计算24点的程序

同事给我出了一道算24的智力题,{5,5,5,1} 算24.最后没有算出来。

写了一个能得出答案的程序,不过,里面会有很多重复的答案。。

public class Suan24 {
	public static void main(String args[]) {
		float a[] = { 5, 5, 5, 1 };
		pp(a, "");
	}

	/**
	 * 参数a为传入的数组,后面的sf为输出内容。
	 */
	public static void pp(float a[], String sf) {
		int lev = a.length;
		if (lev == 1) {
			if (a[0] == 24) {
				System.out.println(sf);
				System.out.println("成功");
			}
		} else {
			// 这两个for循环是随机取出两个值,为了后边的计算。
			for (int i = 0; i < lev; i++) {
				for (int j = 0; j < lev; j++) {
					if (i == j) {
						continue;
					}
					// 这个数组是为了存储没有计算过的数字
					float[] aa = new float[lev - 1];
					int tem = 0;
					for (int z = 0; z < lev; z++) {
						if (z == i || z == j) {
							continue;
						}
						aa[tem] = a[z];
						tem++;
					}
					// 这一步是将取出的计算的两个数字计算,将计算后的数字和前面没有计算的数字组到一起。
					aa[tem] = a[i] + a[j];
					// 这里是继续循环,数组的长度少了一位。
					pp(aa, sf + a[i] + "+" + a[j] + "=" + aa[tem] + "-----");
					// 和上面一样。
					aa[tem] = a[i] * a[j];
					pp(aa, sf + a[i] + "*" + a[j] + "=" + aa[tem] + "-----");
					aa[tem] = a[i] - a[j];
					pp(aa, sf + a[j] + "-" + a[i] + "=" + aa[tem] + "-----");
					aa[tem] = a[i] / a[j];
					pp(aa, sf + a[i] + "/" + a[j] + "=" + aa[tem] + "-----");
				}
			}
		}
	}
}

 最后算出结果了。

1.0/5.0=0.2-----5.0-0.2=4.8-----4.8*5.0=24.0

 现在在想怎么才可以让结果没有重复的呢?

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【摘要】 本文从 Python 编程语言的角度出发,介绍了如何编写一个简单的乘除计算器。首先,我们介绍了 Python 的基础语法和数据类型,包括变量、数据类型、运算符、表达式等。然后,我们通过编写一个简单的计算程序,介绍了 Python 的函数、流程控制语句、异常处理、文件操作等知识点。最后,我们对程序进行了分析和优化,提高了程序的效率和可读性。 【关键词】 Python;乘除计算器;编程程序;分析报告;优化 【正文】 一、Python 基础语法和数据类型 Python 是一种高级编程语言,它有着简单易学、开发效率高、跨平台等优点,因此在科学计算、数据分析、人工智能等领域得到了广泛的应用。在编写乘除计算程序之前,我们需要了解 Python 的基础语法和数据类型。 1.1 变量 在 Python 中,变量是用来存储数据的。变量名可以是任意大小写字母、数字和下划线的组合,但不能以数字开头。变量可以通过赋值语句来创建和初始化。例如,下面的代码创建了一个名为 a 的变量,并将其赋值为 1: a = 1 1.2 数据类型 Python 中有多种数据类型,包括整数、浮点数、布尔值、字符串、列表、元组、字典等。其中,整数和浮点数可以进行算术运算,布尔值用于逻辑运算,字符串用于表示文本,列表、元组和字典用于存储多个值。 1.3 运算符 Python 中有多种运算符,包括算术运算符、比较运算符、逻辑运算符等。算术运算符包括、乘、除等;比较运算符用于比较两个值的大小关系;逻辑运算符用于组合多个条件。例如,下面的代码演示了如何使用算术运算符计算乘除: a = 10 b = 5 c = a + b # d = a - b # e = a * b # 乘 f = a / b # 除 1.4 表达式 在 Python 中,表达式是由变量、常量、运算符等组成的计算式。表达式可以用于计算值、比较大小、判断真假等。例如,下面的代码演示了如何使用表达式计算乘除: a = 10 b = 5 c = a + b # d = a - b # e = a * b # 乘 f = a / b # 除 1.5 输入和输出 在 Python 中,可以使用 input() 函数获取用户输入的数据,使用 print() 函数输出结果。例如,下面的代码演示了如何获取用户输入的两个数,并计算它们的和: a = int(input("请输入第一个数:")) b = int(input("请输入第二个数:")) c = a + b print("两个数的和是:", c) 二、编写乘除计算程序 了解了 Python 的基础语法和数据类型之后,我们可以开始编写乘除计算程序了。该程序需要实现以下功能: 1. 提示用户输入两个数和运算符; 2. 根据运算符进行乘除计算; 3. 输出计算结果; 4. 如果用户输入的是非法运算符或除数为 0,需要给出错误提示。 下面是完整的程序代码: ``` # 定义计算函数 def calculate(num1, num2, operator): if operator == "+": return num1 + num2 elif operator == "-": return num1 - num2 elif operator == "*": return num1 * num2 elif operator == "/": if num2 == 0: raise ValueError("除数不能为 0") else: return num1 / num2 else: raise ValueError("非法运算符") # 主函数 def main(): try: # 获取用户输入 num1 = float(input("请输入第一个数:")) num2 = float(input("请输入第二个数:")) operator = input("请输入运算符(+、-、*、/):") # 计算结果 result = calculate(num1, num2, operator) # 输出结果 print("计算结果是:", result) except ValueError as e: print("发生错误:", str(e)) # 调用主函数 if __name__ == "__main__": main() ``` 三、程序分析和优化 编写完成乘除计算程序之后,我们需要对程序进行分析和优化,提高程序的效率和可读性。 3.1 分析 在分析程序时,我们需要考虑以下问题: 1. 输入的数据类型是否正确; 2. 运算符是否合法; 3. 除数是否为 0。 程序中使用了异常处理机制来处理这些问题。当出现异常时,程序会抛出异常并给出错误提示。 3.2 优化 在优化程序时,我们需要考虑以下问题: 1. 程序的可读性; 2. 程序的效率。 为了提高程序的可读性,我们可以给变量、函数、常量等起一个有意义的名字,使用注释来解释代码的功能。例如,下面是经过优化后的程序代码: ``` # 乘除计算器 # 定义计算函数 def calculate(num1, num2, operator): """ 计算函数 :param num1: 第一个数 :param num2: 第二个数 :param operator: 运算符 :return: 计算结果 """ if operator == "+": return num1 + num2 elif operator == "-": return num1 - num2 elif operator == "*": return num1 * num2 elif operator == "/": if num2 == 0: raise ValueError("除数不能为 0") else: return num1 / num2 else: raise ValueError("非法运算符") # 主函数 def main(): """ 主函数 """ try: # 获取用户输入 num1 = float(input("请输入第一个数:")) num2 = float(input("请输入第二个数:")) operator = input("请输入运算符(+、-、*、/):") # 计算结果 result = calculate(num1, num2, operator) # 输出结果 print("计算结果是:", result) except ValueError as e: print("发生错误:", str(e)) # 调用主函数 if __name__ == "__main__": main() ``` 为了提高程序的效率,我们可以使用 Python 的内置函数和模块。例如,下面是使用 math 模块计算平方根的程序代码: ``` import math # 计算平方根 def calculate(num): """ 计算平方根 :param num: 数字 :return: 平方根 """ return math.sqrt(num) # 主函数 def main(): """ 主函数 """ try: # 获取用户输入 num = float(input("请输入一个数:")) # 计算平方根 result = calculate(num) # 输出结果 print("计算结果是:", result) except ValueError as e: print("发生错误:", str(e)) # 调用主函数 if __name__ == "__main__": main() ``` 四、总结 本文介绍了如何使用 Python 编写一个简单的乘除计算程序。我们通过讲解 Python 的基础语法和数据类型,以及编写程序的过程,帮助读者了解 Python 的编程思想和方法。同时,我们还对程序进行了分析和优化,提高了程序的效率和可读性。希望读者能够通过本文的学习,掌握 Python 编程的基础知识和技能,为后续的学习和应用打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值