千家信息网

C++怎么实现计算24点的程序

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇"C++怎么实现计算24点的程序"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C
千家信息网最后更新 2026年11月03日C++怎么实现计算24点的程序

这篇"C++怎么实现计算24点的程序"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C++怎么实现计算24点的程序"文章吧。

简单的程序:

1. 运行程序

2. 输入4个整数,比如:3 3 7 8

3. 显示所有可能的组合

代码:

#include "assert.h"#include  double operate(double num1, double num2, int op){ assert(op >= 0 && op < 4);  if(op == 0){ return num1 + num2; } else if(op == 1){ return num1 - num2; } else if(op == 2){ return num1 * num2; } else{ return num1/num2; }} int calculate(int num1, int num2, int num3, int num4){ char operators[] = "+-*/";  for(int i = 0; i < 4; i ++) { for(int j = 0; j < 4; j ++) {  for (int k = 0; k < 4; k ++)  {  double ret = operate(num1, num2, i);  ret = operate(ret, num3, j);  ret = operate(ret, num4, k);  if(abs(ret - 24) < 0.001){   printf("((%d %c %d) %c %d) %c %d = %f\n", num1, operators[i],                     num2, operators[j],       num3, operators[k],       num4, ret);  }   ret = operate(num1, num2, i);  double ret2 = operate(num3, num4, k);  ret = operate(ret, ret2, j);  if(abs(ret - 24) < 0.001){   printf("(%d %c %d) %c (%d %c %d) = %f\n", num1, operators[i],                     num2, operators[j],       num3, operators[k],       num4, ret);  }   ret = operate(num2, num3, j);  ret = operate(num1, ret, i);  ret = operate(ret, num4, k);  if(abs(ret - 24) < 0.001){   printf("(%d %c (%d %c %d)) %c %d = %f\n", num1, operators[i],                     num2, operators[j],       num3, operators[k],       num4, ret);  }   ret = operate(num2, num3, j);  ret = operate(ret, num4, k);  ret = operate(num1, ret, i);  if(abs(ret - 24) < 0.001){   printf("%d %c ((%d %c %d) %c %d) = %f\n", num1, operators[i],                    num2, operators[j],       num3, operators[k],       num4, ret);  }   ret = operate(num3, num4, k);  ret = operate(num2, ret, j);  ret = operate(num1, ret, i);  if(abs(ret - 24) < 0.001){   printf("%d %c (%d %c (%d %c %d)) = %f\n", num1, operators[i],                     num2, operators[j],       num3, operators[k],       num4, ret);  }  } } } return 0;} int main(int argc, char* argv[]){  int nums[4] = {0, 0, 0, 0}; std::cin >> nums[0] >> nums[1] >> nums[2] >> nums[3];  for (int i = 0; i < sizeof(nums)/sizeof(nums[0]); i ++) { int num1 = nums[i]; int ret = num1;   for(int j = 0; j < sizeof(nums)/sizeof(nums[0]); j ++) {  if(j == i)  continue;   int num2 = nums[j];    for(int k = 0; k < sizeof(nums)/sizeof(nums[0]); k++)  {  if( k == i || k == j)   continue;   int num3 = nums[k];   for(int l = 0; l < sizeof(nums)/sizeof(nums[0]); l ++)  {   if(l == i || l == j || l == k)   continue;    int num4 = nums[l];   calculate(num1, num2, num3, num4);  }  } } }  return 0;}

以上就是关于"C++怎么实现计算24点的程序"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

程序 内容 C++ 文章 知识 篇文章 代码 价值 大部分 就是 整数 更多 步骤 知识点 行业 资讯 资讯频道 频道 帮助 组合 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技名片 湖北九亚互联网络科技有限公司 广东猪兼强互联网科技有限公司 工业互联网科技新基建 互联网巨头反垄断金融科技 科技互联网技术 北京互联网科技有限公司 汇久创客互联网科技 万达互联网科技 上游互联网科技 银川新华互联网科技学校地址 互联网科技中介 宜昌元轩互联网科技有限公司 互联网科技人工智能实验室 天津腾达互联网科技有限公司 互联网新科技动漫ppt素材 工业互联网展湾科技股份有限公司 青岛易易互联网科技 河南商务圈互联网科技有限公司 如何强化互联网金融科技 与互联网科技公司 卓越科技(互联网 ) 宜安科技 互联网金融 成都狮子座互联网科技 阿里互联网科技公司 成都铂石互联网科技做什么的 未来五年的互联网科技 世界互联网领先科技成果获奖 科技互联网行业投资研究 上海旺乐尼互联网科技有限公司
0