蓝桥杯刷题集训
前言
本文章是记录蓝桥杯的2013年的真题以及往年的省赛真题
提示:以下是本篇文章正文内容,下面案例可供参考
一、蓝桥杯2013年c组第一题是填空题猜年龄
本题思路在于年龄,首先本题的突破点在于我们需要输入一个年龄,然后再开一个for循环对for进行枚举,然后在进行判断和输出就行了。
#include<stdio.h> int main() { for (int i = 10; i < 30; i++) { int i1 = i * i * i; int i2 = i1 * i; if (i1 >= 1000 && i1 < 10000 && i2 >= 100000 && i2 < 1000000) printf("%d %d %d\n", i, i1, i2); } return 0; }
这些题相当于一些给学生提升信心的开门小题目啦!
二、蓝桥杯c组第二题马虎的算式
首先:我们看到此题第一个想到的应该就是枚举,为什么呢?因为我们看题,abcde代表着1~9不同的5个数字,这说明五个数字是完全不相同的,所以我们在枚举的时候应该要考虑到这个因素我们在这里必须得加个if判断,其次我们遍历的时候还不能包含0所以for循环的开头还需要是1开头,最后遍历五次循环之后我们还要进行一次判断,判断这个乘法的交换律的问题也就是哪一个公式如果满足这个公式我们的计数就进行++ans就行了。
#include<stdio.h> int main() { int ans = 0; for (int a = 1; a < 10; a++) { for (int b = 1; b < 10; b++) { if(a != b) for (int c = 1; c < 10; c++) { if(c != a&& c!= b) for (int d = 1; d < 10; d++) { if(d != a && d != b && d!= c) for (int e = 1; e < 10; e++) { if (e != a && e != b && e != c && e != d) //ab * cde == adb * ce if ((a * 10 + b) * (c * 100 + d * 10 + e) == (a * 100 + d * 10 + b) * (c * 10 + e)) ans++; } } } } } printf("%d", ans); return 0; }
三、蓝桥杯c题振兴中华
首先我们应该思考,从头开始走,走到华字有多少种走法呢?在这些走法当中又有多少种走法是正确的呢?实际上就是枚举每一种走法,也就是计数就好啦。枚举在其中有两种方法,一种是迭代,第二种呢就是递归,本题用的是递归的写法,当x位于3时,y等于4的时候就返回1,如若不是此if判断的条件,就进行递归
#include<iostream> using namespace std; int f(int x, int y) { if (x == 3 || y == 4) return 1; return f(x + 1, y) + f(x, y + 1); } int main() { cout << f(0, 0) << endl; return 0; }
四、蓝桥杯D题幻方填空
待定
总结
动手是最好的老师。不要只会抄答案噢!