> 文章列表 > 【冲刺蓝桥杯的最后30天】day7

【冲刺蓝桥杯的最后30天】day7

【冲刺蓝桥杯的最后30天】day7

大家好😃,我是想要慢慢变得优秀的向阳🌞同学👨‍💻,断更了整整一年,又开始恢复CSDN更新,从今天开始更新备战蓝桥30天系列,一共30天,如果对你有帮助或者正在备战蓝桥杯的小伙伴可以支持一下哦!~不能说肯定是干货,但会让你有所收获!💓💓💓

🍭🍭我们总是在生活扮演各种角色,却唯独很少扮演自己🍭🍭

可能喜欢过很多人才会明白的一个道理,就是遇到真正喜欢和真正合适的人,当朋友或许才更加稳妥,这是激素消散后理性的大脑告诉过我的答案。也不是说怂什么的,就是这样做的更稳妥,因为这是我之前勇敢过,尝试过后得到的一些感悟。

蓝桥杯还剩最后29天,肯定还要继续更新下去,但最近刷别的题发现自己基础不牢,想要再系统地复习一下自己之前的笔记,加上马上又六级,需要做的事情有点多,这些题目更新会只有两道了,而且题也不难都,希望大家谅解,以后会补上的,就是这一星期左右会减少的点量,之后有空立马补上来(在蓝桥杯生赛前)。

三角回文数 - 蓝桥云课 (lanqiao.cn)

思路:这道题暴力完全没问题,但我感觉做题要学到一些知识,我就不讲暴力了。看题很敏感可以看出来其实三角数就是一个等差数列!注意刷了这么多道题,蓝桥杯独爱等差数列,要敏感敏感敏感!!!用等差数列求和公式来判断是不是三角数就可以了,而且回文数本身就比较稀有,我们直接可以先判断三角数,满足条件再去看这个三角数是不是回文就可以了。这里我们缩减一下范围(不缩减也可以,但难题肯定要缩减)因为告诉我们要大于20220514,所以我们可以用等差公式求和得到n的一个近似值为6539这个值刚好是第一个大于的值20220514,不信你可以计算器算一算好了很快,这样每次我们求出一个三角数,然后如果满足回文直接输出就可以了。

    public static void main(String[] args) {for (int i = 6359; ; i++) {int tmp = (i + 1) * i / 2;if (check(tmp)){System.out.println(tmp);break;}}}static boolean check(int x) {char[] s = (x + "").toCharArray();int r = s.length - 1;int l = 0;while (l < r) {if (s[l] != s[r]) return false;l++;r--;}return true;}

数数 - 蓝桥云课 (lanqiao.cn)

思路:又是一道蓝桥杯爱考的质数问题,这里用到的就是唯一分解定理来算就好了,算法的时间复杂度是O(n*根号n)

    public static void main(String[] args) {int ans = 0;for (int i = 2333333; i <= 23333333; i++) {int tmp = i;int x = 0;for (int j = 2; j <= tmp/j; j++) {//得到i的最小质因子if(tmp % j == 0){//不断的剔除最小质因子数j,直到不能被整除while(tmp % j == 0){tmp/=j;//每剔除一次就可以让数i的质因子+1x++;}}}//数论中的一个结论:任何一个数,它的质因数大于根号n有且只有一个,正常来说处理到这块的时候,n应该是=1,//如果不等于1,说明此时n的值大于根号n无法被处理掉,根据结论可知这个数只有一个,所以我们ans++就好了if(tmp > 1) x++;if(x == 12) ans++;}System.out.println(ans);}