第十一届蓝桥杯省赛第一场原题

A:指数计算(5分)

【问题描述】

7月1日是建党日,从1921年到2020年,中国XXX已经带领中国人民走过了99年。
请计算:7^2020 mod 1921,其中A mod B 表示 A 除以 B 的余数。

【答案提交】

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个
整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

【解题思路】

拿到这道题,我还想着用写程序的方式去解决,写程序咋写呢,最开始想的就是在7乘的中间进行取余,为此我还找个小数手稿验证了一下,但是结果是不对的,事后想想这样确实不对。最后想到了以前用过分治的方式写过阶层求值,在合并的时候正好可以进行取余运算,正好求解了此问题。其实还有更简单的,使用电脑的计算器就行,考试的时候还是要怎么简单怎么做。

#include<iostream> using namespace std; int dfs(int n){ if(n==1){ return 7; } if(n%2==0){ return (dfs(n/2)*dfs(n/2))%1921; } else if(n%2!=0){ return (dfs(n/2)*dfs(n/2)*7)%1921; } } int main() { cout << dfs(2020); return 0; }

【答案】

480

B:解密(5分)

【问题描述】

小明设计了一种文章加密的方法:对于每个字母 c,将它变成某个另外的
字符 Tc。下表给出了字符变换的规则:

字母c Tc 字母c Tc 字母c Tc 字母c Tc
a   y   n   l   A   Y   N   L  
b   x   o   g   B   X   O   G  
c   m   p   o   C   M   P   O  
d   d   q   u   D   D   Q   U  
e   a   r   f   E   A   R   F  
f   c   s   s   F   C   S   S  
g   i   t   z   G   I   T   Z  
h   k   u   p   H   K   U   P  
i   n   v   w   I   N   V   W  
j   t   w   b   J   T   W   B  
k   j   x   r   K   J   X   R  
l   h   y   e   L   H   Y   E  
m   q   z   v   M   Q   Z   V  

例如,将字符串 YeRi 加密可得字符串 EaFn。
小明有一个随机的字符串,加密后为
EaFnjISplhFviDhwFbEjRjfIBBkRyY
(由 30 个大小写英文字母组成,不包含换行符),请问原字符串是多少?
(如果你把以上字符串和表格复制到文本文件中,请务必检查复制的内容
是否与文档中的一致。在试题目录下有一个文件 str.txt,第一行为上面的字符
串,后面 52 行依次为表格中的内容。)

【答案提交】

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个
只包含 30 个大小写英文字母的字符串,在提交答案时只填写这个字符串,填写
多余的内容将无法得分

【解题思路】

这个问题就比较简单了,就是简单的字符串转换,主要就是搞清楚字符的对应的关系。

#include<iostream> #include<string> using namespace std; int main() { //加密后字符串 string str="EaFnjISplhFviDhwFbEjRjfIBBkRyY"; string s1="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; string s2="yxmdacikntjhqlgoufszpwbrevYXMDACIKNTJHQLGOUFSZPWBREV"; for(int i=0;i<str.size();i++){ int index = s2.find(str[i]); cout << s1[index]; } return 0; }

【答案】

YeRikGSunlRzgDlvRwYkXkrGWWhXaA

C:跑步训练(10分)

【问题描述】

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsspjy.html