当前位置:   article > 正文

蓝桥青少年组——计算24 2020-11-25_“计算 24”是一个流传已久的数字游戏,

“计算 24”是一个流传已久的数字游戏,

蓝桥青少年组——计算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. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/64305
推荐阅读
相关标签
  

闽ICP备14008679号