C++计算24点的简单程序
本文实例为大家分享了C++计算24点的的具体代码,供大家参考,具体内容如下
近来家庭作业里有24点的题目,为了找出所有可能的组合,就写了个简单的程序:
1.运行程序
2.输入4个整数,比如:3 3 7 8
3.显示所有可能的组合
代码:
#include"assert.h" #includedoubleoperate(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 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。