zoukankan      html  css  js  c++  java
  • 益智游戏

    Description

    李老师最近开发了一项关于训练学生心算能力的益智游戏,游戏很简单,就是随机给定4个1到9之间的自然数,要求判断能否对这4个自然数进行适当的算术运算,使运算结果等于24。
      你可以使用的运算只有:+,-,,/,您还可以使用()来改变运算顺序。注意:所有的中间结果须是整数,所以一些除法运算是不允许的(例如,(22)/4是合法的,2*(2/4)是不合法的)。下面我们给出一个游戏的具体例子:
      若给出的4个自然数是:1、2、3、7,则一种可能的解答是1+2+37=24。计算过程:
      2+1=3
      7
    3=21
      21+3=24
      不要求输出具体计算过程,现在请你编写实现这个游戏加强版的程序(所谓加强版,就是要对多组数据逐一进行判断,具体输入输出及要求如下)。

    Input

    共有N+1行,第一行只有一个正整数N,表示要判断数据共有N组(1=< N <=10),接下来N行,每行有4个1到9之间的自然数(数据与数据之间用空格隔开)。

    Output

    共有N行,第K行对应于第K组4个1到9之间的自然数是否能用适当的算术运算使运算结果等于24,如果能,则输出1,如果不能则输出0。

    Sample Input
    2
    1 2 3 7
    1 1 1 1

    Sample Output
    1
    0

    .
    .
    .
    .
    .
    分析
    直接深搜
    注意情况

    .
    .
    .
    .
    .
    程序:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    bool bz=false,b[20];
    int n,a[20];
    
    void dfs(int sum,int tj)
    {
    	if (tj==4)
    	{
    		if (sum==24) bz=true;
    		return;
    	}
    	
    	for (int i=1;i<=4;i++)
    		if (b[i]==false)
    		{
    			b[i]=true;
    			dfs(sum+a[i],tj+1);
    			dfs(sum-a[i],tj+1);
    			dfs(sum*a[i],tj+1);
    			if (sum%a[i]==0) dfs(sum/a[i],tj+1);
    			dfs(a[i]-sum,tj+1);
    			b[i]=false;
    		}
    }
    
    int main()
    {
    	freopen("game.in","r",stdin);
    	freopen("game.out","w",stdout);
    	scanf("%d",&n);
    	for (int i=1;i<=n;i++)
    	{
    		for (int j=1;j<=4;j++)
    			scanf("%d",&a[j]);
    		bz=false;
    		memset(b,false,sizeof(b));
    		for (int j=1;j<=4;j++)
    			dfs(a[j],1);
    		if (bz==true) printf("1
    "); else printf("0
    ");
    	}
    	fclose(stdin);
    	fclose(stdout);
    	return 0;
    }
    
  • 相关阅读:
    考研岁月
    sklearn 翻译笔记:KNeighborsClassifier
    网站不让复制的办法
    关于VMware Workstation 15 Player 虚拟机安装Windows系统却无法安装vmware tools的解决
    今天真是太傻了
    GoogleHacking相关技巧
    判断ARP欺骗
    Linux各个文件及其含义
    小白的开始—转一篇Linux系统入门的文章
    课时39.细线表格(理解)
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/11094926.html
Copyright © 2011-2022 走看看