全国计算机能力挑战赛练习题
题目描述
若有非零整数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.电商促销某种商品时,希望 ...
最新文章
- Redis亿级数据过滤和布隆过滤器
- 90.前端 :执行方法前提示功能
- 数牍科技完成超3亿元A轮融资,隐私工程守护数据全生命周期流通协作
- NSStirng、NSArray、以及枚举(Method小集合)
- centos6.x 安装elasticsearch6.x步骤
- ConcurrentHashMap的源码分析-JDK1.7和Jdk1.8版本的变化
- 前端学习(1299):gulp插件
- Period II(FZU-1901)
- 今天聊聊Oracle Database 21c 十“小”新特性
- 谢惠民恽自求易法槐钱定边数学分析习题课讲义思考题练习题参考题解答
- 今天走了一天, 才回到家
- install and use zookeeper C client API
- ASP.NET开发学习视频教程大全(共800集)
- java留言板源码_jsp留言板示例源码下载(入门级)
- c语言输出100以内的素数存放数组中,c语言素数(c语言输出100以内素数)
- mysql游标少循环_掌握更少的后卫和循环
- 开头决胜武器:软文开头的4种常用写法
- 个人github地址 https://github.com/Gerry1218
- arduino编乐谱_基于Arduino的电子音乐发声器设计
- vue中,应用mapbox地图(一)——mapbox-gl地图设置中文是zh-Hans不是zh accessToken-访问令牌 正确版本streets-v11