题目
========================
问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利
输入:
4个1-10的数字。[数字允许重复,测试用例保证无异常数字]
输出:
true or false
知识点 循环
运行时间限制 10M
内存限制 128
输入
输入4个int整数
输出
返回能否得到24点,能输出true,不能输出false
样例输入 7 2 1 10
样例输出 true
====================================================
一次通过 100分
=======================================================
import java.util.Scanner;
//问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利
//输入:
//4个1-10的数字。[数字允许重复,测试用例保证无异常数字]
//输出:
//true or false
//知识点 循环
//运行时间限制 10M
//内存限制 128
//输入
//输入4个int整数
//输出
//返回能否得到24点,能输出true,不能输出false
//样例输入 7 2 1 10
//样例输出 true
public class oj022 {
public boolean canBe24(int a,int b,int c,int d)
{
boolean ret=false;
float sum=0;
for(int i=0;i<4;i++)
{
sum=0;
if(i==0){sum+=a+b;}
if(i==1){sum+=a-b;}
if(i==2){sum+=a*b;}
if(i==3){sum+=a/b;}
for(int j=0;j<4;j++)
{
if(j==0){sum+=c;}
if(j==1){sum-=c;}
if(j==2){sum*=c;}
if(j==3){sum/=c;}
for(int k=0;k<4;k++)
{
if(k==0){sum+=d;}
if(k==1){sum-=d;}
if(k==2){sum*=d;}
if(k==3){sum/=d;}
if(sum==24){ret=true;return ret;}
}
}
}
return ret;
}
public boolean allcanbe24(int a,int b,int c,int d)
{
boolean ret=false;
if(canBe24(a, b, c, d)) {ret=true;}
if(canBe24(a, b, d, c)) {ret=true;}
if(canBe24(a, c, b, d)) {ret=true;}
if(canBe24(a, c, d, b)) {ret=true;}
if(canBe24(a, d, b, c)) {ret=true;}
if(canBe24(a, d, c, b)) {ret=true;}
if(canBe24(b, a, c, d)) {ret=true;}
if(canBe24(b, a, d, c)) {ret=true;}
if(canBe24(b, c, a, d)) {ret=true;}
if(canBe24(b, c, d, a)) {ret=true;}
if(canBe24(b, d, c, a)) {ret=true;}
if(canBe24(b, d, a, c)) {ret=true;}
if(canBe24(c, a, b, d)) {ret=true;}
if(canBe24(c, a, d, b)) {ret=true;}
if(canBe24(c, b, a, d)) {ret=true;}
if(canBe24(c, b, d, a)) {ret=true;}
if(canBe24(c, d, b, a)) {ret=true;}
if(canBe24(c, d, a, b)) {ret=true;}
if(canBe24(d, a, c, b)) {ret=true;}
if(canBe24(d, a, b, c)) {ret=true;}
if(canBe24(d, c, a, b)) {ret=true;}
if(canBe24(d, c, b, a)) {ret=true;}
if(canBe24(d, b, c, a)) {ret=true;}
if(canBe24(d, b, a, c)) {ret=true;}
return ret;
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
int b=scanner.nextInt();
int c=scanner.nextInt();
int d=scanner.nextInt();
boolean ret=new oj022().allcanbe24(a, b, c, d);
System.out.print(ret);
}
}