大家好😃,我是想要慢慢变得优秀的向阳🌞同学👨💻,断更了整整一年,又开始恢复CSDN更新,从今天开始更新备战蓝桥30天系列,一共30天,如果对你有帮助或者正在备战蓝桥杯的小伙伴可以支持一下哦!~不能说肯定是干货,但会让你有所收获!💓💓💓
🍭 🍭 我们总是在生活扮演各种角色,却唯独很少扮演自己 🍭 🍭
每天都用上面这句话,来解释一下吧,就是我感觉可能一个人到了一个年龄或者遇见什么事情之后,会突然感觉自己好像不能再像之前那样嘻嘻哈哈,因为长大了,自己也要做一点事情去为了自己的家庭为了自己的父母吧,也不是什么孝顺或者责任感啥的,就是突然有一天...不能再想做什么就做什么了,也要想办法撑起一个家了
星期计算 - 蓝桥云课 (lanqiao.cn)
签到题很简单,这里用两个方法来给大家解释。
思路1:就是单纯模拟题目意思去做题,但是注意爆数据范围,20^22是会爆int和long的数据的,所以每次ans*=20的时候一定一定要取模7(因为星期数是1-7,当星期八的时候8%7=1了,也就是星期一了),这样操作可以防止爆数据范围导致错误,得到答案1不是指星期一,而是说相对于今天周六而言,多一天,最后的答案就是星期天。
思路2:计算器法,真正比赛可以用windows系统自带的计算器的
-
- public static void main(String[] args) {
- long ans = 1;
- for (int i = 0; i < 22; i++) {
- ans *= 20;
- ans %= 7;
- }
- System.out.println(ans);//1
- }
考勤刷卡 - 蓝桥云课 (lanqiao.cn)
思路:感觉也是一道签到题(这几天题难度都不大哈,但每道题还是有点注意事项的)感觉这道题就是考输入输出的,这个也是很关键的一个地方,可以好好学习学习。
- public static void main(String[] args) {
- //可以存入数据并按照顺序的排序输出的一个数据结构
- Set<Integer> set = new TreeSet<>();
- Scanner sc = new Scanner(System.in);
- int n = sc.nextInt();
- for (int i = 0; i < n; i++) {
- //这个就是为了把每一行空格前的字符串数据读取了,到空格就结束,nextLine是读一行遇见空格也没事
- String tmp = sc.next();
- //剩下的id被读取下来
- int id = sc.nextInt();
- set.add(id);
- }
- //foreach的一个读取方法,集合类常用这种方法输出,不懂的可以搜一下csdn很多资源
- for(Integer i : set){
- //看题目样例输出你们可能会感觉我这个不对,但其实我这个也能AC,如果完全按照答案
- //给的样例输出也是AC,很奇怪,如果这真的是在考场上的一道题,还是按照题目的样例
- //输出的格式来输出保险一点,哪怕题出错咱们也是按照人家给的,也不怪咱们,没办法OI赛制不敢赌
- System.out.println(i);
- }
- }
卡片 - 蓝桥云课 (lanqiao.cn)
思路:其实也没啥算法,就是一个数学知识,等差数列吧算是,如果题看不太懂没关系,我们直接看样例说明,很容易能看出来其实就是就是把所有手牌给排列组合一下,这个思路完全可以暴力一下,但只能过50%数据,我们可以发现1种卡牌只能(1,1),2种卡牌就是(1,1)(1,2)(2,2),比原先多+了2,继续往后面算其实可以发现规律每多一种卡牌就是等差数列多了,1+2+3如果是从有1种卡牌到有3种卡牌时,满足条件要求情况数量的变化,这种题只能说要多做才能有感觉,第一次没感觉很正常,不要急,慢慢来,我们写个等差数列就可以了,也可以用等差数列求和公式。
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int n = sc.nextInt();
- //记录等差数列的和
- int sum = 0;
- for (int i = 1; ; i++) {
- //每多一种卡牌
- sum += i;
- //当等差数列大于等于n的时候就是有i种卡牌就满足条件情况了
- if (sum >= n) {
- System.out.println(i);
- break;
- }
- }
- }
文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览42577 人正在系统学习中