深圳幻海软件技术有限公司 欢迎您!

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

2023-03-31

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

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

🍭 🍭 我们总是在生活扮演各种角色,却唯独很少扮演自己 🍭 🍭
每天都用上面这句话,来解释一下吧,就是我感觉可能一个人到了一个年龄或者遇见什么事情之后,会突然感觉自己好像不能再像之前那样嘻嘻哈哈,因为长大了,自己也要做一点事情去为了自己的家庭为了自己的父母吧,也不是什么孝顺或者责任感啥的,就是突然有一天...不能再想做什么就做什么了,也要想办法撑起一个家了

星期计算 - 蓝桥云课 (lanqiao.cn)

签到题很简单,这里用两个方法来给大家解释。
思路1:就是单纯模拟题目意思去做题,但是注意爆数据范围,20^22是会爆int和long的数据的,所以每次ans*=20的时候一定一定要取模7(因为星期数是1-7,当星期八的时候8%7=1了,也就是星期一了),这样操作可以防止爆数据范围导致错误,得到答案1不是指星期一,而是说相对于今天周六而言,多一天,最后的答案就是星期天。
思路2:计算器法,真正比赛可以用windows系统自带的计算器的
  1. public static void main(String[] args) {
  2. long ans = 1;
  3. for (int i = 0; i < 22; i++) {
  4. ans *= 20;
  5. ans %= 7;
  6. }
  7. System.out.println(ans);//1
  8. }

考勤刷卡 - 蓝桥云课 (lanqiao.cn)

思路:感觉也是一道签到题(这几天题难度都不大哈,但每道题还是有点注意事项的)感觉这道题就是考输入输出的,这个也是很关键的一个地方,可以好好学习学习。
  1. public static void main(String[] args) {
  2.         //可以存入数据并按照顺序的排序输出的一个数据结构
  3. Set<Integer> set = new TreeSet<>();
  4. Scanner sc = new Scanner(System.in);
  5. int n = sc.nextInt();
  6. for (int i = 0; i < n; i++) {
  7.             //这个就是为了把每一行空格前的字符串数据读取了,到空格就结束,nextLine是读一行遇见空格也没事
  8. String tmp = sc.next();
  9.             //剩下的id被读取下来
  10. int id = sc.nextInt();
  11. set.add(id);
  12. }
  13.         //foreach的一个读取方法,集合类常用这种方法输出,不懂的可以搜一下csdn很多资源
  14. for(Integer i : set){
  15.             //看题目样例输出你们可能会感觉我这个不对,但其实我这个也能AC,如果完全按照答案
  16.             //给的样例输出也是AC,很奇怪,如果这真的是在考场上的一道题,还是按照题目的样例
  17.             //输出的格式来输出保险一点,哪怕题出错咱们也是按照人家给的,也不怪咱们,没办法OI赛制不敢赌
  18. System.out.println(i);
  19. }
  20. }

卡片 - 蓝桥云课 (lanqiao.cn)

思路:其实也没啥算法,就是一个数学知识,等差数列吧算是,如果题看不太懂没关系,我们直接看样例说明,很容易能看出来其实就是就是把所有手牌给排列组合一下,这个思路完全可以暴力一下,但只能过50%数据,我们可以发现1种卡牌只能(1,1),2种卡牌就是(1,1)(1,2)(2,2),比原先多+了2,继续往后面算其实可以发现规律每多一种卡牌就是等差数列多了,1+2+3如果是从有1种卡牌到有3种卡牌时,满足条件要求情况数量的变化,这种题只能说要多做才能有感觉,第一次没感觉很正常,不要急,慢慢来,我们写个等差数列就可以了,也可以用等差数列求和公式。
  1. public static void main(String[] args) {
  2. Scanner sc = new Scanner(System.in);
  3. int n = sc.nextInt();
  4.         //记录等差数列的和
  5. int sum = 0;
  6. for (int i = 1; ; i++) {
  7.             //每多一种卡牌
  8. sum += i;
  9.             //当等差数列大于等于n的时候就是有i种卡牌就满足条件情况了
  10. if (sum >= n) {
  11. System.out.println(i);
  12. break;
  13. }
  14. }
  15. }
文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览42577 人正在系统学习中