【冲刺蓝桥杯的最后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的质因子+1
                        x++;
                    }
                }
            }
            //数论中的一个结论:任何一个数,它的质因数大于根号n有且只有一个,正常来说处理到这块的时候,n应该是=1,
            //如果不等于1,说明此时n的值大于根号n无法被处理掉,根据结论可知这个数只有一个,所以我们ans++就好了
            if(tmp > 1) x++;
            if(x == 12) ans++;
        }
        System.out.println(ans);
    }
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想要慢慢变得优秀的向阳同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值