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点的程序”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注恰卡编程网行业资讯频道。