[蓝桥杯解题报告]第七届蓝桥杯大赛省赛2016(软件类)真题C++A组 Apare_xzc

蓝桥杯第七届(2016年)省赛软件类C++A组解题报告

Apare_xzc 2020/3/4


考生须知:

[蓝桥杯解题报告]第七届蓝桥杯大赛省赛2016(软件类)真题C++A组 Apare_xzc
[蓝桥杯解题报告]第七届蓝桥杯大赛省赛2016(软件类)真题C++A组 Apare_xzc

1.网友年龄

[蓝桥杯解题报告]第七届蓝桥杯大赛省赛2016(软件类)真题C++A组 Apare_xzc

[蓝桥杯解题报告]第七届蓝桥杯大赛省赛2016(软件类)真题C++A组 Apare_xzc

分析:

         这道题明显可以口算出来。我们可以选择最暴力的两重循环找答案,也可以对236分解质因数,稍加分析,口算出答案。
         通过分解质因数,我们知道,我们不妨设这个人开始过生日party的年龄为x,今年的年龄为y,则,我们用等差数列求和公式可得:。
         我们稍加分析可知:x+y 和 y-x的奇偶性相同,那么x+y和y-x+1一定是一奇一偶。于是只能是一个,一个。于是:

联立可得:,

答案:

分解质因数的代码:


3. 方格填数

[蓝桥杯解题报告]第七届蓝桥杯大赛省赛2016(软件类)真题C++A组 Apare_xzc
我们只需要dfs一个长度为10的序列,序列的每个位置都可以填到的某个数,然后判断是否合法即可。
        我们可以预处理出每个位置相邻的位置(上下左右对角)有哪些,存到vector中,便于我们dfs时判断。只要每个位置和比它编号小的所有位置都不相邻,那么这个填法一定合理

代码:

[蓝桥杯解题报告]第七届蓝桥杯大赛省赛2016(软件类)真题C++A组 Apare_xzc
#include void swap(int a[], int i, int j){	int t = a[i];	a[i] = a[j];	a[j] = t;}int partition(int a[], int p, int r){    int i = p;    int j = r + 1;    int x = a[p];    while(1){while(ir && a[++i]x);while(a[--j]>x);if(i>=j) break;swap(a,i,j);    }	//请填空______________________;    return j;}void quicksort(int a[], int p, int r){    if(pr){int q = 来源:Apare_xzc
                                                        

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年2月3日
下一篇 2020年2月3日

相关推荐