蓝桥青少年组——计算24 2020-11-25

简介: 蓝桥青少年组——计算24 2020-11-25

蓝桥青少年组——计算24

【编程实现】

“计算24"是一个流传已久的数字游戏,小蓝最近对此痴迷不已。

游戏规则是:对4个1~10之间的自然数,进行加、减、乘三种运算,要求运算结果等于24。

乘法的优先级高于加、减,并且算式中不可以用括号,不可以改变4个数字出现的顺序。

下面我们给出两个游戏的具体例子:

若给出的4个操作数是:10、2、4、8,则有两种可能的解答方案10+2+4+8=24,10*2-4+8=24。若给出的4个操作数是:7,2、3、6,则没有解答方案。

请你输出解答方案数。

输入:四个整数

输出:输出方案总数

【评判标准】

30分:完成题目样例和给出的一个样例

40分:在30分的基础上完成给出的第三个样例;

50分:在40分的基础上完成给出的第四个样例。

样例输入1:

7 2 3 6

样例输出1:

0

样例输入2:

10 2 4 8

样例輸出2:

2

1. //暴力枚举所有的可能性
2. #include <stdio.h>
3. int a,b,c,d,f1,f2,f3,tmp;
4. int main(int argc, char *argv[])
5. {
6.  int tj=0;
7.  scanf("%d %d %d %d",&a,&b,&c,&d);
8.  for(f1=1;f1<=3;f1++)
9.    for(f2=1;f2<=3;f2++)
10.       for(f3=1;f3<=3;f3++){
11.         if(f1==3&&f2==3&&f3==3) tmp=a*b*c*d;
12.         else if(f1==3&&f2==3&&f3!=3){
13.           tmp=a*b*c;
14.           if(f3==1)tmp+=d;
15.           else tmp-=d;
16.         }
17.         else if(f1!=3&&f2==3&&f3==3){
18.           tmp=b*c*d;
19.           if(f1==1)tmp=a+tmp;
20.           else tmp=a-tmp;
21.         }
22.         else if(f1==3&&f2!=3&&f3==3){
23.           if(f2==1)tmp=a*b+c*d;
24.           else tmp=a*b-c*d;
25.         }
26.         else if(f1==3&&f2!=3&&f3!=3){
27.           tmp=a*b;
28.           if(f2==1)tmp+=c;
29.           else tmp-=c;
30.           if(f3==1)tmp+=d;
31.           else tmp-=d;
32.         }
33.         else if(f1!=3&&f2==3&&f3!=3){
34.           tmp=b*c;
35.           if(f1==1)tmp=a+tmp;
36.           else tmp=a-tmp;
37.           if(f3==1)tmp+=d;
38.           else tmp-=d;
39.         }
40.         else if(f1!=3&&f2!=3&&f3==3){
41.           if(f1==1)tmp=a+b;
42.           else tmp=a-b;
43.           if(f2==1)tmp+=c*d;
44.           else tmp-=c*d;
45.         }
46.         else{
47.           if(f1==1)tmp=a+b;
48.           else tmp=a-b;
49.           if(f2==1)tmp+=c;
50.           else tmp-=c;
51.           if(f3==1)tmp+=d;
52.           else tmp-=d;
53.         }
54.         if(tmp==24)tj++;
55.       }
56.       printf("%d\n",tj);
57.   return 0;
58. }

 

相关文章
|
3月前
|
测试技术 定位技术 C++
第十四届省赛大学B组(C/C++)岛屿个数
第十四届省赛大学B组(C/C++)岛屿个数
|
3月前
|
人工智能 C++
第十四届省赛大学B组(C/C++)接龙数列
第十四届省赛大学B组(C/C++)接龙数列
|
8月前
|
机器学习/深度学习 人工智能 测试技术
棋盘(来源:第十四届蓝桥杯省赛JavaA/C/研究生组 , 第十四届蓝桥杯省赛PythonC组)
棋盘(来源:第十四届蓝桥杯省赛JavaA/C/研究生组 , 第十四届蓝桥杯省赛PythonC组)
|
8月前
|
人工智能 BI 测试技术
三国游戏(第十四届蓝桥杯省赛C++C组)
三国游戏(第十四届蓝桥杯省赛C++C组)
砍竹子(蓝桥杯 2022 省赛 B 组 J 题)
砍竹子(蓝桥杯 2022 省赛 B 组 J 题)
95 0
|
8月前
|
人工智能 测试技术 C++
第十五届蓝桥杯模拟赛B组(第二期)C++
第十五届蓝桥杯模拟赛B组(第二期)C++
176 0
第十五届蓝桥杯模拟赛B组(第二期)C++
|
存储 人工智能 测试技术
第十二届蓝桥杯省赛第二场 C/C++ B组 编程题与详解
第十二届蓝桥杯省赛第二场 C/C++ B组 编程题与详解
167 0
|
算法 测试技术 C++
第十一届蓝桥杯第三场软件类省赛 C++ B组 题解(二)
第十一届蓝桥杯第三场软件类省赛 C++ B组 题解
162 0
|
算法 测试技术 C++
第十一届蓝桥杯第三场软件类省赛 C++ B组 题解(一)
第十一届蓝桥杯第三场软件类省赛 C++ B组 题解
109 0
|
C++
第八届蓝桥杯省赛 C++ A/B组 - 分巧克力
第八届蓝桥杯省赛 C++ A/B组 - 分巧克力
119 0