问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java程序设计:算24点

发布网友 发布时间:2022-04-23 23:05

我来回答

2个回答

热心网友 时间:2023-10-13 02:04

//这是我自己写的,在VC里可以运行。

#include "stdafx.h"

#include<stdio.h>

#include<stdlib.h>

static int NUMBER;

bool Game24(int const nNum, int* arr, int nLen, int nCount, char* pOperator, bool* pFlag){

if(nCount == 1){

if(*arr == nNum){

printf("((%d %c %d) %c %d) %c %d = %d\n",

arr[0],pOperator[0],arr[1],pOperator[1],arr[2],pOperator[2],arr[3],NUMBER);

if(!(*pFlag)) *pFlag = true;

}

return *pFlag;

}

for(int i = 0; i < 4; ++i){

switch(i){

case 0:

pOperator[nCount - 2] = '+';

Game24(nNum - arr[nCount - 1], arr,nLen,nCount - 1,pOperator,pFlag);

break;

case 1:

pOperator[nCount - 2] = '-';

Game24(nNum + arr[nCount - 1], arr,nLen,nCount - 1,pOperator,pFlag);

break;

case 2:

pOperator[nCount - 2] = '*';

if( arr[nCount - 1] && !(nNum % arr[nCount - 1]))

Game24(nNum / arr[nCount - 1], arr,nLen,nCount - 1,pOperator,pFlag);

break;

case 3:

pOperator[nCount - 2] = '/';

if(arr[nCount - 1])

Game24(nNum * arr[nCount - 1], arr,nLen,nCount - 1,pOperator,pFlag);

break;

}

}

return *pFlag;

}

int fOperating(char pOpe, int x1, int x2){

switch(pOpe){

case '+': return x1 + x2;

case '-': return x1 - x2;

case '*': return x1 * x2;

case '/': return x1 / x2;

}

}

bool fGame24(int const nNum, int* arr,char* pOperator, bool* pFlag){

int nLeft = 0,nRight = 0;

char pOpe[4] = {'+','-','*','/'};

for(int l = 0; l < 4; ++l){

if(l == 3 && (!arr[1] || arr[0] % arr[1])) continue;

pOperator[0] = pOpe[l];

nLeft = fOperating(pOpe[l],arr[0],arr[1]);

for(int r = 0; r < 4; ++r){

if(r == 3 && (!arr[3] || arr[2] % arr[3])) continue;

pOperator[2] = pOpe[r];

nRight = fOperating(pOpe[r],arr[2],arr[3]);

for(int m = 0; m < 4; ++m){

if(m == 3 && (!nRight || nLeft % nRight)) continue;

pOperator[1] = pOpe[m];

if(fOperating(pOpe[m],nLeft,nRight) == nNum){

printf("(%d %c %d) %c (%d %c %d)  = %d\n",

arr[0],pOperator[0],arr[1],pOperator[1],arr[2],pOperator[2],arr[3],NUMBER);

if(!(*pFlag)) *pFlag = true;

}

}

}

}

return *pFlag;

}

int main(int argc, char* argv[])

{

puts("start!\nPlease input 4 numbers:");

bool* pFlag = (bool*)malloc(1);

*pFlag = false;

bool flag = 0;

int pNum[4] = {0};

int cNum[4] = {0};

int iNum[4] = {0};

char cOpe[3] = {0};

for(int i = 0; i < 4; ++i)

scanf("%d",&pNum[i]);

puts("So, what number do you want:");

scanf("%d",&NUMBER);

puts("************************************");

for(iNum[0] = 0; iNum[0] < 4; ++iNum[0]){

for(iNum[1] = 0; iNum[1] < 4; ++iNum[1]){

if(iNum[1] == iNum[0]) continue;

for(iNum[2] = 0; iNum[2] < 4; ++iNum[2]){

if(iNum[2] == iNum[0] || iNum[2] == iNum[1]) continue;

for(iNum[3] = 0; iNum[3] < 4; ++iNum[3]){

if(iNum[3] == iNum[0] || iNum[3] == iNum[1] || iNum[3] == iNum[2]) continue;

for(int i = 0; i < 4; ++i) cNum[i] = pNum[iNum[i]];

if(Game24(NUMBER,cNum,4,4,cOpe,pFlag)) flag = true;

if(fGame24(NUMBER,cNum,cOpe,pFlag)) flag = true;

}

}

}

}

free(pFlag);

if(!flag) printf("No way can be found.\n");

puts("************************************\nEnd!");

system("pause");

return 0;

}


热心网友 时间:2023-10-13 02:05

link

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 蚕丝被好吗,什么季节用最好? 如何脱离网贷生涯,成功上岸 求一个简单的C语言游戏24点的编程代码。可以在WIN-TC上面运行的 我欠了20万网贷如何强制上岸 蚕丝被好不好 缺点有哪些 c语言编程24点游戏,由电脑给四个随机数,用户输入含这四个随机数的算法,有没有大神会啊,帮帮忙啊。 玩一个组合24的C语言编程游戏。 编程C语言 24点游戏 单片机课程电子钟软件编程时,如何用汇编语言实现24进制的编程? 网贷想上岸,不知道如何开始?非常感谢 PIC24编程问题 C++ 编程,24点游戏 求助~~24速算的C语言编程~~ 减肥怎样科学? C语言实训求:编程实现24点游戏算法 网贷多了,快还不上了。大概还有3万左右,怎么办?都想死了算了,有什么办法可以尽快挣到钱吗? 以前退出的QQ群又回来了,之前的聊天记录没有了怎么找回? c语言编程题,计算二十四点 随机生成四个1~10的数字,使用加减乘除运算,计算24.输出这四个数字是否能计算 减肥怎样有效 用C语言程序编写“抢24”游戏,规则就是两个人,第一个人从数字1开始,可以说1或者1和2,第二个人_百度问一问 c语言程序设计中如何写24变成42的代码? 用蚕丝被好吗? 蚕丝被好不好 蚕丝被好吗 蚕丝被干洗可以吗? 康师傅汤大师番茄牛腩面5包入多少钱一入? 番茄牛里脊汤的做法,番茄牛里脊汤怎么做好吃,番茄牛 番茄牛里脊汤的做法,番茄牛里脊汤怎么做好吃 番茄牛排骨汤怎么做好吃,番茄牛排骨汤的家常做法 味千拉面的番茄肥牛汤怎么炖的 蔬菜牛肉汤的做法? 牛里脊肉烧番茄怎么才嫩 番茄牛尾汤取名,能帮我取一个好听的名? OPPOr15 耳机模式怎么关闭你好? 什么是花柳病?花柳病的症状一般有哪些? 花柳病是什么症状,危害大小 男人得了花柳病会有什么表现 花柳有什么症状? 请问得了得花柳会有什么表现症状? 花柳病有哪些症状?