草庐IT

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

想要慢慢变得优秀的向阳同学 2023-04-05 原文

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

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

🍄🍄数列求值 - 蓝桥云课 (lanqiao.cn)🍄🍄

思路:模拟题,用一个窗口来表示三项之和,每次挪动一格,a b c也要跟随着移动,用一个额外变量记录tmp = a+b+c,窗口每次移动 a = b,b = c, c = tmp,最后挪动到答案的时候输出最后一个值c即可。为了防止爆long从第四个数开始每次得到的值都要%10000取后四位的值,取模不会影响最后答案的计算,这是取模的性质决定的。

public static void main(String[] args) {
        long a = 1;
        long b = 1;
        long c = 1;
        for (int i = 4; i <= 20190324; i++) {
            long tmp = (a + b + c) % 10000;
            a = b;
            b = c;
            c = tmp;
        }
        System.out.println(c);//答案最后是4659
    }

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

思路①:直接暴力模拟就行,很快就能出答案。
思路②:用欧式筛法来提前打好质数数组表,最后直接输入要找第多少个,得到质数数组表里存的答案
//暴力法,根据题意来模拟就行    
public static void main(String[] args) {
        boolean flag = true;
        int count = 0;
        int ans = 0;
        for (int i = 2; i < Integer.MAX_VALUE; i++) {//因为不知道第2019个质数,所以i结束条件尽量要大,最后跳出循环的是break
            for (int j = 2; j <= i/j; j++) {// i/j相当于根号i,只不过比根号i更高效,记住这个小技巧就行
                if(i % j ==0) {
                    flag = false;
                    break;
                }
            }
            if(flag) count++;
            if(count == 2019){
                ans = i;
                break;
            }
            flag = true;
        }
        System.out.println(ans);//最后答案是17569
    }
//欧式筛法
    public static void main2(String[] args) {
        int n = (int) 1e6;//求第2019个质数,打1e6的表够用,不放心可以打更大的
        int count = 0;
        int[] prime = new int[n+1];//存放第i个素数的值
        boolean[] isPrime = new boolean[n+1];//判断当前这个数是否为素数,默认为false,这里true表示合数,false表示素数
        for (int i = 2; i <= n; i++) {
            if(isPrime[i] == false) prime[count++] = i;//如果为素数那么存放到prime数组
            for (int j = 0; j < count && prime[j] * i <= n; j++) {
                isPrime[prime[j]*i] = true;//素数的倍数一定不是素数
                if(i % prime[j] == 0) break;//核心!避免多次对一个数进行true赋值,提高了效率
            }
        }
        System.out.println(prime[2018]);//最后答案是17569,数组从0开始,所以这里填写2019
    }
如果没有学过欧式筛法,对于核心那一行的语句不是很懂,让我们举个具体例子,便于我们深入理解。如果此时i = 12,j = 0,prime[0]是2,prime[j]*i = 2*12=24不是素数赋值为true,此时达到核心语句12%2==0跳出,如果没有跳出那么下一句就是i = 12,j = 1,prime[1]是3,prime[j]*i = 3*12=36不是素数赋值为true,但是36最小质因数是2,当i = 18的时候 j = 0的时候还是会把36变为true,这样会导致重复,我们这个算法意思就是只让最小质因数来赋值改变,其他的值都不进行重复赋值了。

🌶️🌶️饮料换购 - 蓝桥云课 (lanqiao.cn)🌶️🌶️

思路:模拟题,按照题目要求来解决即可,想好再写,千万不干着急没有头绪去写。很经典的题,方法很多,我认为这个是我最容易理解的方法。
 public static void main4(String[] args) {
        int ans = 0;
        int pg = 0;
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while (n > 0) {//只要还剩一瓶就能喝,喝完剩下瓶盖哪怕还不了新瓶子照样喝,喝到一瓶不剩才行,不然100的数据如果出现148答案,就是你还剩一瓶没喝,就是while循环的条件不对
            ans += n;//喝完所有的饮料
            pg += n;//得到的瓶盖数
            n = pg / 3;//瓶盖拿去换成新的饮料
            pg %= 3;//还剩多少旧瓶盖
        }
        System.out.println(ans);
    }

有关【冲刺蓝桥杯的最后30天】day1的更多相关文章

  1. 牛客网专项练习30天Pytnon篇第02天 - 2

    1.在Python3中,下列关于数学运算结果正确的是:(B)a=10b=3print(a//b)print(a%b)print(a/b)A.3,3,3.3333...B.3,1,3.3333...C.3.3333...,3.3333...,3D.3.3333...,1,3.3333...解析:    在Python中,//表示地板除(向下取整),%表示取余,/表示除(Python2向下取整返回3)2.如下程序Python2会打印多少个数:(D)k=1000whilek>1:    print(k)k=k/2A.1000 B.10C.11D.9解析:    按照题意每次循环K/2,直到K值小于等

  2. ruby - Hanami link_to 助手只呈现最后一个元素 - 2

    我是HanamiWorld的新人。我已经写了这段代码:moduleWeb::Views::HomeclassIndexincludeWeb::ViewincludeHanami::Helpers::HtmlHelperdeftitlehtml.headerdoh1'Testsearchengine',id:'title'hrdiv(id:'test')dolink_to('Home',"/",class:'mnu_orizontal')link_to('About',"/",class:'mnu_orizontal')endendendendend我在模板上调用了title方法。htm

  3. ruby - 如果它是标点符号,我怎么能从字符串中删除最后一个字符,在 ruby​​ 中? - 2

    啊,正则表达式有点困惑。我正在尝试删除字符串末尾所有可能的标点符号:ifstr[str.length-1]=='?'||str[str.length-1]=='.'||str[str.length-1]=='!'orstr[str.length-1]==','||str[str.length-1]==';'str.chomp!end我相信有更好的方法来做到这一点。有什么指点吗? 最佳答案 str.sub!(/[?.!,;]?$/,'')[?.!,;]-字符类。匹配这5个字符中的任何一个(注意,。在字符类中并不特殊)?-前一个字符或组

  4. Ruby - 删除文件中的最后一个字符? - 2

    看起来一定很简单,但我就是想不通。如何使用RubyIO删除文件的最后一个字符?我查看了deletingthelastlineofafile的答案使用Ruby但没有完全理解它,必须有更简单的方法。有什么帮助吗? 最佳答案 有File.truncate:truncate(file_name,integer)→0Truncatesthefilefile_nametobeatmostintegerbyteslong.Notavailableonallplatforms.所以你可以这样说:File.truncate(file_name,Fil

  5. ruby-on-rails - Ruby on Rails 的最后 20% - 2

    我是(相当)一位经验丰富的程序员,但对Ruby和RubyonRails完全陌生。RoR看起来很适合快速工作,特别是用于CRUD操作的自动屏幕生成。它确实能让您快速提高工作效率。问题是最后20%的工作,那时我必须完成我的申请。RoR公约不会妨碍我吗?因为不是每个数据库表都必须对所有用户可用,也不是所有用户都可以编辑所有列和/或所有行,而且View必须适应我网站的外观等。我知道RoR已成功用于现场,但在第一阶段烧毁后,如何在RoR中获得足够的速度以逃避重力。 最佳答案 我认为脚手架无法让您达到80%。脚手架很好,因为它向您展示了Rail

  6. arrays - 在一行中选择数组的第一个和最后一个元素 - 2

    我的任务是从数组中选择最高和最低的数字。我想我很清楚我想做什么,但只是努力以正确的格式访问信息以满足通过标准。defhigh_and_low(numbers)array=numbers.split("").map!{|x|x.to_i}array.sort!{|a,b|ba}putsarray[0,-1]end数字可能看起来像"80917234100",要通过,我需要输出"9234"。我正在尝试putsarray.first.last,但一直无法弄明白。 最佳答案 有Array#minmax完全满足您需要的方法:array=[80,

  7. ruby-on-rails - rails : Find tasks that were created on a certain day? - 2

    我有一个任务列表(名称、starts_at),我试图在每日View中显示它们(就像iCal)。deftodays_tasks(day)Task.find(:all,:conditions=>["starts_atbetween?and?",day.beginning,day.ending]end我不知道如何将Time.now(例如“2009-04-1210:00:00”)动态转换为一天的开始(和结束),以便进行比较。 最佳答案 deftodays_tasks(now=Time.now)Task.find(:all,:conditio

  8. 蓝桥杯备赛(二) - 2

    目录前言: 一、ASC分析代码实现二、 卡片分析代码实现三、 直线分析代码实现四、货物摆放分析代码实现小结:前言:  在刷题的过程中,发现蓝桥杯的题目和力扣的差别很大。让人有一种不一样的感觉,蓝桥杯题目偏向对于实际问题用编程去的解决,而力扣给人感觉很锻炼自己的编程思维,逻辑能力。两者结合去刷,相信会有不一样的收获。 一、ASC  已知大写字母A的ASCII码为65,请问大写字母L的ASCII码是多少?分析  这道题目看上去很简单,我们需确定自己计算的准确,所以我建议用编程去解决。代码实现publicclassTest8{publicstaticvoidmain(String[]args){Sy

  9. 什么是0day漏洞?如何预防0day攻击? - 2

    什么是0day漏洞?0day漏洞,是指已经被发现,但是还未被公开,同时官方还没有相关补丁的漏洞;通俗的讲,就是除了黑客,没人知道他的存在,其往往具有很大的突发性、破坏性、致命性。0day漏洞之所以称为0day,正是因为其补丁永远晚于攻击。所以攻击者利用0day漏洞攻击的成功率极高,往往可以达到目的并全身而退,而防守方却一无所知,只有在漏洞公布之后,才后知后觉,却为时已晚。“后知后觉、反应迟钝”就是当前安全防护面对0day攻击的真实写照!为了方便大家理解,中科三方为大家梳理当前安全防护模式下,一个漏洞从发现到解决的三个时间节点:T0:此时漏洞即0day漏洞,是已经被发现,还未被公开,官方还没有相

  10. ruby - Rails 比较 date.end_of_day.to_datetime 和 date.to_datetime.end_of_day 返回的日期对象值时返回 false - 2

    ruby1.9.3dev(2011-09-23修订版33323)[i686-linux]轨道3.0.20最近为什么在与DateTimeonRails相关的RSpecs项目上工作我发现在给定日期以下语句发出的值date.end_of_day.to_datetime和date.to_datetime.end_of_day虽然它们表示相同的日期时间,但比较时返回false。为了确认这一点,我打开了Rails控制台并尝试了以下操作1.9.3dev:053>monday=Time.now.monday=>2013-02-2500:00:00+05301.9.3dev:054>monday.cla

随机推荐