题目描述

若有非零整数A、B、C,将其组成两个等式(A@B)#C=24、A@(B#C)=24,其中@和#为运算符号'+'、'-'、'*'、'/'、'%'之一,同一符号可选择一次或多次,如果这两个等式至少有一个成立,则输出YES,否则输出NO。

输入说明

第一行输入正整数N,表示有N组数据。(N<1000)

其后N行每行输入非零整数A、B、C(-1e5<=A、B、C<=1e5)

输出说明

如果两个等式至少有一个成立,则输出YES,否则输出NO,每组数据的输出占一行。

输入样例

3

4 1 6

3 4 5

6 3 12

输出样例

YES

NO

YES

数据范围提示

(注意,在该题中整数/整数,取结果的整数部分,例如1/4=0

主函数说明:

#include<stdio.h>
#include<stdlib.h>int main()
{int n=0;scanf("%d", &n);//定义一个二维数组int **arr = NULL;//动态开辟行内存arr = (int**)malloc(1000*sizeof(int*));for (int i = 0; i < 3; i++){//动态开辟列内存arr[i] = (int*)malloc(3*sizeof(int));}for (int i = 0; i < n; i++){scanf("%d %d %d", &arr[i][0], &arr[i][1],&arr[i][2]);}//检验输入是否合法函数 JudgeNum(n, arr);// 进行判断并输出结果函数ConposeOperation(arr, n);}

检验输入是否合法函数

输入说明

第一行输入正整数N,表示有N组数据。(N<1000)

其后N行每行输入非零整数A、B、C(-1e5<=A、B、C<=1e5)

//进行判断输入是否合理
int JudgeNum(int n,int** arr)
{//正整数,N<1000if (n < 1 || n >= 1000){printf("输入n不合法\n");}//-1e5 <= A、B、C <= 1e5for (int i = 0; i < n; i++){for (int j = 0; j < 3; j++){if (arr[i][j]<-100000 || arr[i][j]>100000){printf("输入数据不合法,请重新运行程序\n");return 0;}}}return 0;
}

进行判断并输出结果函数

1).分组运算函数

//分组运算
void ConposeOperation(int **arr,int n)
{int num1 = 0; //(A@B)#C int num2 = 0;   //A@(B#C)int input1 = 0;  //@int input2 = 0;    //#//遍历每行数据for (int i = 0; i < n; i++){//遍历每行数据的运算符@for (input1 = 1; input1 < 6; input1++){int a = Operation(arr[i][0], arr[i][1], input1);int b = Operation(arr[i][1], arr[i][2], input1);//遍历每行运算符#for (input2 = 1; input2 < 6; input2++){num1 = Operation(a, arr[i][2], input2);   //(A@B)#C num2 = Operation(b, arr[i][0], input2); //A@(B#C)//判断每行运算结果是否为24if (num1 == 24 || num2 == 24){printf("Yes\n");break;}}if (num1 == 24 || num2 == 24){break;}}//若全部遍历完运算符都不是24if (input1 == 6){printf("No\n");}}
}

2).可选的六种运算符

//可选的运算符
int Operation(int a, int b,int input)
{switch (input){case 1:return a + b;break;case 2:return a - b;break;case 3:return a*b;break;case 4:return a / b;break;case 5:return a%b;break;default:break;}return 0;
}

完整代码

#include<stdio.h>
#include<stdlib.h>//进行判断输入是否合理
int JudgeNum(int n,int** arr)
{//正整数,N<1000if (n < 1 || n >= 1000){printf("输入n不合法\n");}//-1e5 <= A、B、C <= 1e5for (int i = 0; i < n; i++){for (int j = 0; j < 3; j++){if (arr[i][j]<-100000 || arr[i][j]>100000){printf("输入数据不合法,请重新运行程序\n");return 0;}}}return 0;
}//可选的运算符
int Operation(int a, int b,int input)
{switch (input){case 1:return a + b;break;case 2:return a - b;break;case 3:return a*b;break;case 4:return a / b;break;case 5:return a%b;break;default:break;}return 0;
}//分组运算
void ConposeOperation(int **arr,int n)
{int num1 = 0; //(A@B)#C int num2 = 0;   //A@(B#C)int input1 = 0;  //@int input2 = 0;    //#//遍历每行数据for (int i = 0; i < n; i++){//遍历每行数据的运算符@for (input1 = 1; input1 < 6; input1++){int a = Operation(arr[i][0], arr[i][1], input1);int b = Operation(arr[i][1], arr[i][2], input1);//遍历每行运算符#for (input2 = 1; input2 < 6; input2++){num1 = Operation(a, arr[i][2], input2);   //(A@B)#C num2 = Operation(b, arr[i][0], input2); //A@(B#C)//判断每行运算结果是否为24if (num1 == 24 || num2 == 24){printf("Yes\n");break;}}if (num1 == 24 || num2 == 24){break;}}//若全部遍历完运算符都不是24if (input1 == 6){printf("No\n");}}
}int main()
{int n=0;scanf("%d", &n);int **arr = NULL;//动态开辟行内存arr = (int**)malloc(1000*sizeof(int*));for (int i = 0; i < 3; i++){//动态开辟列内存arr[i] = (int*)malloc(sizeof(int)*3);}for (int i = 0; i < n; i++){scanf("%d %d %d", &arr[i][0], &arr[i][1],&arr[i][2]);}//检验输入是否合法 JudgeNum(n, arr);// 进行判断并输出结果 ConposeOperation(arr, n);}

全国计算机能力挑战赛练习题相关推荐

  1. 全国高校计算机能力挑战赛c++初赛

    12月要参加全国计算机能力挑战赛,所以去网上搜了题目做了一下,大致都是一些常规思路,有大佬有更好的方法还望指点一番. 题目 智能除草 农业植保无人机作为最新的设备,可以加注除草剂进行除草.每次工作可以 ...

  2. 全国高校计算机能力挑战赛真题(二)

    全国高校计算机能力挑战赛Java模拟练习题(二) 竞赛官网:http://www.ncccu.org.cn/ 全国高校计算机能力挑战赛真题(一) 1.模拟时间:90分钟 2.单选题15题(每题3分), ...

  3. 2020年第二届全国高校计算机能力挑战赛Excel模拟题

    2020年第二届全国高校计算机能力挑战赛Excel模拟题 Excel模拟题1 1.模拟答题时间: 60分钟; 2.单选题45题(每题1分),不定向选择题10 (每题2分),判断题10题(每题1分),实 ...

  4. 非科班Java尝试全国高校计算机能力挑战赛第三届计挑赛

    写在前面:①大佬勿在意,小打小闹!②若不决参加与否,希望下文可以给你帮助(仅限程序设计赛项). 文章目录 一.个人真实情况 二.比赛最细简介 三.最全参赛准备 四.比赛时候遇到不会做怎么办? 一.个人 ...

  5. 2019C语言程序设计大赛,2019年全国高校计算机能力挑战赛 C语言程序设计决赛

    2019年全国高校计算机能力挑战赛 C语言程序设计决赛 毕竟这个比赛是第一次举办,能理解.. 希望未来再举办时,能够再完善一下题面表述.数据范围. 话说区域赛获奖名额有点少吧.舍友花60块想混个创新创 ...

  6. 全国高校计算机能力挑战赛

    CSDN话题挑战赛第1期 活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题:大学生竞赛指南 话题描述: ...

  7. 【2021年第三届全国高校计算机能力挑战赛】大数据应用赛

    [2021年第三届全国高校计算机能力挑战赛]大数据应用赛 赛题:大数据应用赛 一.赛题背景: 二.时间安排: 三.奖项设置: 四.赛题和数据: 五.评价标准: 六.作品提交要求: 七.解决方案: 八. ...

  8. 第二届全国高校计算机能力挑战赛-Java程序设计赛

    第二届全国高校计算机能力挑战赛-Java程序设计赛 2020年第二届全国高校计算机能力挑战赛-Java程序设计赛前15题为选择题.16,17,18,19为编程题. 16题 题目:统计从1到N的整数中, ...

  9. 2019年全国高校计算机能力挑战赛C++组初赛

    这里写自定义目录标题 2019年全国高校计算机能力挑战赛C++组初赛 1题目一 题目二 题目三 题目四 题目五 2019年全国高校计算机能力挑战赛C++组初赛 1题目一 16.电商促销某种商品时,希望 ...

最新文章

  1. php每分钟刷新一次的验证码,php如何在进入页面的时候自动刷新一次验证码
  2. 百度eCharts体验
  3. Objective-c——UI基础开发第十二天(相册展示)
  4. win7 IIS7.5配置伪静态
  5. SpringBoot 实现固定、动态定时任务 | 三种实现方式 | 附源代码
  6. 计算机视觉领域,计算机视觉
  7. 解决IDEA修改已有项目为maven项目时目录结构被改变的问题
  8. java反编译器JAD.exe的使用
  9. Linux手动指定ip地址
  10. mysql服务无法启动进程意外终止_mysql服务无法启动 1067 错误,进程意外终止
  11. 智能判断图片中是否存在某物体_RFID新技术:让所有物体联网!
  12. 基于单片机的水库控制系统设计
  13. 自费访学|计算机专业老师赴加拿大卡尔加里大学
  14. Grub2引导进入DOS系统
  15. 2015小米暑期实习笔试题_风口的猪-中国牛市(dp)
  16. navicat 执行sql文件
  17. 【matlab教程】02、拼接矩阵或向量
  18. CentOS如何修改时区
  19. weblogic10.3.6升级补丁时间慢的问题
  20. jdk的环境配置..

热门文章

  1. 姚期智的「清华十年」
  2. 2sin30°在python中如何表示_Python学习之基础练习(1)
  3. 【java自然语言处理】ansj分词
  4. python大神和小白代码_看大神6行代码如何带领小白快速入门Python爬虫?
  5. 逐个试探法_在线促销游戏的基本设计试探法
  6. 闲鱼12块买的软件资源!禁止贩卖赚钱
  7. esp32系列(5):esp32 蓝牙架构学习
  8. sqlserver  sql 异常<除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。>
  9. 仿LOL项目开发第五天
  10. 华为Console和VTY的安全管理