C++怎么实现计算24点的程序
C++怎么实现计算24点的程序
这篇“C++怎么实现计算24点的程序”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++怎么实现计算24点的程序”文章吧。
简单的程序:
1. 运行程序
2. 输入4个整数,比如:3 3 7 8
3. 显示所有可能的组合
代码:
#include"assert.h"#include<iostream>doubleoperate(doublenum1,doublenum2,intop){assert(op>=0&&op<4);if(op==0){returnnum1+num2;}elseif(op==1){returnnum1-num2;}elseif(op==2){returnnum1*num2;}else{returnnum1/num2;}}intcalculate(intnum1,intnum2,intnum3,intnum4){charoperators[]="+-*/";for(inti=0;i<4;i++){for(intj=0;j<4;j++){for(intk=0;k<4;k++){doubleret=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);doubleret2=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);}}}}return0;}intmain(intargc,char*argv[]){intnums[4]={0,0,0,0};std::cin>>nums[0]>>nums[1]>>nums[2]>>nums[3];for(inti=0;i<sizeof(nums)/sizeof(nums[0]);i++){intnum1=nums[i];intret=num1;for(intj=0;j<sizeof(nums)/sizeof(nums[0]);j++){if(j==i)continue;intnum2=nums[j];for(intk=0;k<sizeof(nums)/sizeof(nums[0]);k++){if(k==i||k==j)continue;intnum3=nums[k];for(intl=0;l<sizeof(nums)/sizeof(nums[0]);l++){if(l==i||l==j||l==k)continue;intnum4=nums[l];calculate(num1,num2,num3,num4);}}}}return0;}
以上就是关于“C++怎么实现计算24点的程序”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注恰卡编程网行业资讯频道。
推荐阅读
-
C++之list容器模拟怎么实现
C++之list容器模拟怎么实现这篇“C++之list容器模拟怎么...
-
C++深浅拷贝及简易string类怎么实现
C++深浅拷贝及简易string类怎么实现这篇“C++深浅拷贝及简...
-
C++之list容器如何使用
C++之list容器如何使用今天小编给大家分享一下C++之list...
-
C++内存对齐如何实现
C++内存对齐如何实现本篇内容介绍了“C++内存对齐如何实现”的有...
-
C/C++如何获取CAN信号
C/C++如何获取CAN信号本篇内容主要讲解“C/C++如何获取C...
-
C/C++程序链接与反汇编工具objdump如何使用
C/C++程序链接与反汇编工具objdump如何使用这篇文章主要介...
-
C++聚合体初始化的方法是什么
C++聚合体初始化的方法是什么本篇内容介绍了“C++聚合体初始化的...
-
C++引用如何使用
C++引用如何使用这篇文章主要介绍“C++引用如何使用”的相关知识...
-
C++类和对象之封装及class与struct的区别是什么
-
C++怎么实现softmax函数
C++怎么实现softmax函数本篇内容主要讲解“C++怎么实现s...