全国计算机能力挑战赛练习题
题目描述
若有非零整数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);}
全国计算机能力挑战赛练习题相关推荐
- 全国高校计算机能力挑战赛c++初赛
12月要参加全国计算机能力挑战赛,所以去网上搜了题目做了一下,大致都是一些常规思路,有大佬有更好的方法还望指点一番. 题目 智能除草 农业植保无人机作为最新的设备,可以加注除草剂进行除草.每次工作可以 ...
- 全国高校计算机能力挑战赛真题(二)
全国高校计算机能力挑战赛Java模拟练习题(二) 竞赛官网:http://www.ncccu.org.cn/ 全国高校计算机能力挑战赛真题(一) 1.模拟时间:90分钟 2.单选题15题(每题3分), ...
- 2020年第二届全国高校计算机能力挑战赛Excel模拟题
2020年第二届全国高校计算机能力挑战赛Excel模拟题 Excel模拟题1 1.模拟答题时间: 60分钟; 2.单选题45题(每题1分),不定向选择题10 (每题2分),判断题10题(每题1分),实 ...
- 非科班Java尝试全国高校计算机能力挑战赛第三届计挑赛
写在前面:①大佬勿在意,小打小闹!②若不决参加与否,希望下文可以给你帮助(仅限程序设计赛项). 文章目录 一.个人真实情况 二.比赛最细简介 三.最全参赛准备 四.比赛时候遇到不会做怎么办? 一.个人 ...
- 2019C语言程序设计大赛,2019年全国高校计算机能力挑战赛 C语言程序设计决赛
2019年全国高校计算机能力挑战赛 C语言程序设计决赛 毕竟这个比赛是第一次举办,能理解.. 希望未来再举办时,能够再完善一下题面表述.数据范围. 话说区域赛获奖名额有点少吧.舍友花60块想混个创新创 ...
- 全国高校计算机能力挑战赛
CSDN话题挑战赛第1期 活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题:大学生竞赛指南 话题描述: ...
- 【2021年第三届全国高校计算机能力挑战赛】大数据应用赛
[2021年第三届全国高校计算机能力挑战赛]大数据应用赛 赛题:大数据应用赛 一.赛题背景: 二.时间安排: 三.奖项设置: 四.赛题和数据: 五.评价标准: 六.作品提交要求: 七.解决方案: 八. ...
- 第二届全国高校计算机能力挑战赛-Java程序设计赛
第二届全国高校计算机能力挑战赛-Java程序设计赛 2020年第二届全国高校计算机能力挑战赛-Java程序设计赛前15题为选择题.16,17,18,19为编程题. 16题 题目:统计从1到N的整数中, ...
- 2019年全国高校计算机能力挑战赛C++组初赛
这里写自定义目录标题 2019年全国高校计算机能力挑战赛C++组初赛 1题目一 题目二 题目三 题目四 题目五 2019年全国高校计算机能力挑战赛C++组初赛 1题目一 16.电商促销某种商品时,希望 ...
最新文章
- php每分钟刷新一次的验证码,php如何在进入页面的时候自动刷新一次验证码
- 百度eCharts体验
- Objective-c——UI基础开发第十二天(相册展示)
- win7 IIS7.5配置伪静态
- SpringBoot 实现固定、动态定时任务 | 三种实现方式 | 附源代码
- 计算机视觉领域,计算机视觉
- 解决IDEA修改已有项目为maven项目时目录结构被改变的问题
- java反编译器JAD.exe的使用
- Linux手动指定ip地址
- mysql服务无法启动进程意外终止_mysql服务无法启动 1067 错误,进程意外终止
- 智能判断图片中是否存在某物体_RFID新技术:让所有物体联网!
- 基于单片机的水库控制系统设计
- 自费访学|计算机专业老师赴加拿大卡尔加里大学
- Grub2引导进入DOS系统
- 2015小米暑期实习笔试题_风口的猪-中国牛市(dp)
- navicat 执行sql文件
- 【matlab教程】02、拼接矩阵或向量
- CentOS如何修改时区
- weblogic10.3.6升级补丁时间慢的问题
- jdk的环境配置..
热门文章
- 姚期智的「清华十年」
- 2sin30°在python中如何表示_Python学习之基础练习(1)
- 【java自然语言处理】ansj分词
- python大神和小白代码_看大神6行代码如何带领小白快速入门Python爬虫?
- 逐个试探法_在线促销游戏的基本设计试探法
- 闲鱼12块买的软件资源!禁止贩卖赚钱
- esp32系列(5):esp32 蓝牙架构学习
- sqlserver sql 异常<除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。>
- 仿LOL项目开发第五天
- 华为Console和VTY的安全管理