2020年计算机能力挑战赛C/C++初赛题解-创新互联

文章目录
  • 2020国赛能力挑战赛初赛C试题1-3
    • 题目描述
    • 输入说明
    • 输出说明
    • 输入样例
    • 输出样例
    • 题解
  • 2020国赛能力挑战赛初赛C试题2-1
    • 题目描述
    • 输入说明
    • 输出说明
    • 输入样例
    • 输出样例
    • 数据范围提示
    • 题解
  • 2020国赛能力挑战赛初赛C试题2-3
    • 题目描述
    • 输入说明
    • 输出说明
    • 输入样例
    • 输出样例
    • 数据范围
    • 题解
  • 2020国赛能力挑战赛初赛C试题4-1
    • 题目描述
    • 输入说明
    • 输出说明
    • 输入样例
    • 输出样例
    • 数据范围提示
    • 题解

成都创新互联公司是一家专业提供梓潼企业网站建设,专注与成都网站制作、网站设计、html5、小程序制作等业务。10年已为梓潼众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。2020国赛能力挑战赛初赛C试题1-3 题目描述

现要对一个由字符a-z和A-Z组成的字符串进行解密,已知加密规则是:字符串中所有字符分别在大写或小写的字母表中被循环左移5位(fGh–>aBc)。请你写程序完成解密。

输入说明

输入1行,为一个加密过的字符串(( 长度大于1 且小于50 且只包含大小写字母)。

输出说明

输出1行,为解密后的字符串。

输入样例

AbcExyZ

输出样例

FghJcdE

题解
#include#includeint main(){char s[51];
	scanf("%s",&s);
	for(int i=0;is[i] = s[i] + 5;
		if(s[i] >122){	s[i] = s[i]%122 + 96;
		}
		if(s[i] >90){	if(s[i]<97){		s[i] = s[i]%90 + 64;
			}
		}
	}
	printf("%s",s);
	return 0;
}
2020国赛能力挑战赛初赛C试题2-1 题目描述

输入正整数A、B、C(0<=A,B,C<=10000),若用’+‘、’-‘、’*‘、’/‘、’%'之一组成等式(即A@B=C,@是上述运算符之一,),则输出“YES”,否则输出“NO”。

输入说明

第1行:一个正整数N(1<=N<=1000),表示有N组数据,

第2-N+1行:非零整数A、B、C。

输出说明

N行,对于每行整数A、B、C,其计算结果各占一行。

输入样例
5

2 3 6

3 5 1

5 3 1

1 4 1

6 2 7
输出样例
YES

NO

NO

YES

NO
数据范围提示

(说明:输入样例中2*3=6,1%4=1)

题解
#includeint main(){int n,a,b,c,flag = 0;
	scanf("%d",&n);
	for(int i=0;iscanf("%d %d %d",&a,&b,&c);
		if( a+b==c || a-b==c || a*b==c) flag = 1;
		if(b){	if((double)a/b == c || a%b == c) flag = 1;
		}
		if(flag) printf("YES\n");
		if(!flag) printf("NO\n");
		flag = 0;
	}
	return 0;
}
2020国赛能力挑战赛初赛C试题2-3 题目描述

若有非零整数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"
int main(){int n;
	int num[2000][3];
	scanf("%d",&n);
	for(int i=0;i//输入数据
		scanf("%d %d %d",&num[i][0],&num[i][1],&num[i][2]);
	}
	for(int i=0;i//穷举列出运算式子的组合
		int flag=0;//设置逻辑标志
		if((num[i][0]+num[i][1])+num[i][2]==24||num[i][0]+(num[i][1]+num[i][2])==24){	flag=1;
		}
		if((num[i][0]+num[i][1])-num[i][2]==24||num[i][0]+(num[i][1]-num[i][2])==24){	flag=1;
		}
		if((num[i][0]+num[i][1])*num[i][2]==24||num[i][0]+(num[i][1]*num[i][2])==24){	flag=1;
		}
		if((num[i][0]+num[i][1])/num[i][2]==24||num[i][0]+(num[i][1]/num[i][2])==24){	flag=1;
		}
		if((num[i][0]+num[i][1])%num[i][2]==24||num[i][0]+(num[i][1]%num[i][2])==24){	flag=1;
		}
		if((num[i][0]-num[i][1])+num[i][2]==24||num[i][0]-(num[i][1]+num[i][2])==24){	flag=1;
		}
		if((num[i][0]-num[i][1])-num[i][2]==24||num[i][0]-(num[i][1]-num[i][2])==24){	flag=1;
		}
		if((num[i][0]-num[i][1])*num[i][2]==24||num[i][0]-(num[i][1]*num[i][2])==24){	flag=1;
		}
		if((num[i][0]-num[i][1])/num[i][2]==24||num[i][0]-(num[i][1]/num[i][2])==24){	flag=1;
		}
		if((num[i][0]-num[i][1])%num[i][2]==24||num[i][0]-(num[i][1]%num[i][2])==24){	flag=1;
		}
		if((num[i][0]*num[i][1])+num[i][2]==24||num[i][0]*(num[i][1]+num[i][2])==24){	flag=1;
		}
		if((num[i][0]*num[i][1])-num[i][2]==24||num[i][0]*(num[i][1]-num[i][2])==24){	flag=1;
		}
		if((num[i][0]*num[i][1])*num[i][2]==24||num[i][0]*(num[i][1]*num[i][2])==24){	flag=1;
		}
		if((num[i][0]*num[i][1])/num[i][2]==24||num[i][0]*(num[i][1]/num[i][2])==24){	flag=1;
		}
		if((num[i][0]*num[i][1])%num[i][2]==24||num[i][0]*(num[i][1]%num[i][2])==24){	flag=1;
		}
		if((num[i][0]/num[i][1])+num[i][2]==24){	flag=1;
		}
		if(num[i][1]+num[i][2]!=0){	if(num[i][0]/(num[i][1]+num[i][2])==24){		flag=1;
			}
		}
		if((num[i][0]/num[i][1])-num[i][2]==24){	flag=1;
		}
		if(num[i][1]-num[i][2]!=0){	if(num[i][0]/(num[i][1]-num[i][2])==24){		flag=1;
			}
		}
		if((num[i][0]/num[i][1])*num[i][2]==24){	flag=1;
		}
		if(num[i][1]*num[i][2]!=0){	if(num[i][0]/(num[i][1]*num[i][2])==24){		flag=1;
			}
		}
		if(num[i][1]/num[i][2]!=0){//防止除数为0
			if(num[i][0]/(num[i][1]/num[i][2])==24){		flag=1;
			}
		}
		if((num[i][0]/num[i][1])/num[i][2]==24){	flag=1;
		}
		if((num[i][0]/num[i][1])%num[i][2]==24){	flag=1;
		}
		if(num[i][1]%num[i][2]!=0){	if(num[i][0]/(num[i][1]%num[i][2])==24){		flag=1;
			}
		}
		if((num[i][0]%num[i][1])+num[i][2]==24){	flag=1;
		}
		if(num[i][1]+num[i][2]!=0){	if(num[i][0]%(num[i][1]+num[i][2])==24){		flag=1;
			}
		}
		if((num[i][0]%num[i][1])-num[i][2]==24){	flag=1;
		}
		if(num[i][1]-num[i][2]!=0){	if(num[i][0]%(num[i][1]-num[i][2])==24){		flag=1;
			}
		}
		if((num[i][0]%num[i][1])*num[i][2]==24){	flag=1;
		}
		if(num[i][1]*num[i][2]!=0){	if(num[i][0]%(num[i][1]*num[i][2])==24){		flag=1;
			}
		}
		if(num[i][1]/num[i][2]!=0){//防止除数为0
			if(num[i][0]%(num[i][1]/num[i][2])==24){		flag=1;
			}
		}
		if((num[i][0]%num[i][1])/num[i][2]==24){	flag=1;
		}
		if((num[i][0]%num[i][1])%num[i][2]==24){	flag=1;
		}
		if(num[i][1]%num[i][2]!=0){	if(num[i][0]%(num[i][1]%num[i][2])==24){		flag=1;
			}
		}
		if(flag==1){	printf("YES\n");
		}else{//flag为0时表示上述的所以组合没有等于24的
			printf("NO\n");
		}
	}
	return 0;
}
2020国赛能力挑战赛初赛C试题4-1 题目描述

给定一个字符串s,先要对字符串第i个到第j个字符中查找是否存在字符ch,若存在,则删除其中第一个字符ch,若不存在,则在第j个字符后插入字符ch。

输入说明

第一行输入字符串s(长度len<1000)。

第二行输入正整数N和字符ch,N表示其后有N次操作(N<100)。

从第三行开始,其后N行每行有两个正整数i和j(1<=i<=j<=len)。

输出说明

输出N次操作之后的字符串。

输入样例
abcdefg

2 d

1 3

2 6
输出样例
abcdefg
数据范围提示

(解释:abcdefg–>abcddefg–>abcdefg)

题解
#include#includeint main(){char s[10000];
	int N;
	char ch;
	scanf("%s",&s);
	scanf("%d %c",&N,&ch);
	int len = strlen(s);
	for(int t=0;tint i,j,flag = 0;
		scanf("%d %d",&i,&j);
		for(int f=i-1;f<=j-1;f++){	if(s[f]==ch){		flag = 1;
				for(int m=f;ms[m] = s[m+1];		
				}
				len--;
				break;
			}
		}
		if(!flag){	for(int t=len;t>j;t--){		s[t] = s[t-1];
			}
			s[j] = ch;
			len++;
		}
		for(int r=0;r	printf("%c",s[r]);
		}
		printf("\n");
	}
	for(int r=0;rprintf("%c",s[r]);
	}
	return 0;
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享标题:2020年计算机能力挑战赛C/C++初赛题解-创新互联
文章网址:http://ybzwz.com/article/ccehip.html