题解 | #24点游戏算法#

24点游戏算法

https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb

#include <stdio.h>

float a[4];
int use[4]={0};
float result=0;
int bool=0;
void dfs(float res,int deep)
{
    if(deep==4)
    {
        if(res==24)
        {
            bool=1;
        }
        return;
    }
    int i;
    for(i=0;i<4;i++)
    {
        if(use[i]==1)
        {
            continue;
        }else{
            use[i]=1;
            dfs(res+a[i],deep+1);
            dfs(res-a[i],deep+1);
            dfs(res*a[i],deep+1);
            dfs(res/a[i],deep+1);
            if(res!=0)
            {
                dfs(a[i]/res,deep+1);
            }
            dfs(a[i]-res,deep+1);
            use[i]=0;
        }

    }
}
int main() {
     scanf("%f%f%f%f",a,a+1,a+2,a+3);
     dfs(result,0);
     if(bool)
     {
         printf("true\n");
     }else{
         printf("false\n");
     }
}

全部评论
全靠楼里大佬们,自己看题一脸懵,但是没有找到包含了括号的情形的。有看到的友友们踢我
点赞 回复
分享
发布于 11-20 18:07 广东

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务