10道经典蓝桥杯真题剖析(含省赛、国赛) |
您所在的位置:网站首页 › 蓝桥杯历年真题及答案javaB组 › 10道经典蓝桥杯真题剖析(含省赛、国赛) |
文章目录
前言🚀1.立方变自身(简单枚举)🚀2.加法变乘法(插乘枚举)🚀3.借教室(二分法)🚀4.最少砝码(Python)🚀5.货物摆放(C++)🚀6.门牌制作🚀7.成绩分析🚀8.数字三角形🚀9.世纪末的星期(经典日期API问题)🚀10.猜字母(字符处理问题)
前言
大家好,我是莫若心,为了帮助兄弟们更好准备蓝桥杯比赛,我特意选取了蓝桥往年真题中许多能体现出蓝桥经典题型的题目,有需要的兄弟们可以收藏一下,后续我会继续更新蓝桥真题题型专栏,和大家一起冲击蓝桥杯
附上蓝桥杯官网地址:蓝桥杯官网 🚩🚩 题目如下 观察下面的现象,某个数字的平方,按位累加仍然等于自身 1^3=1 8^3=512 5+1+2=8 17^3=4913 4+9+1+3=17 … 请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个? 🚩🚩 答案如下 public class 立方自身 { public static void main(String[] args) { int count = 0; //其实到最多到100就可以了,也可以加大范围枚举,会发现答案不会变多 for (int i = 1; i count++; } } System.out.println(count);//6 } public static int sum(int x){//获得数x各个位相加的返回值 int count=0; while(x>0){ count+=x%10; x=x/10; } return count; } } 🚀2.加法变乘法(插乘枚举)🚩🚩 题目如下 🚩🚩 题目如下 思路: 首先是区间修改,这里用差分进行求解,通过二分进行缩小结果区间!!! #include using namespace std; typedef long long int ll; const ll maxn=1e5+10; const ll maxm=1e8+10; const ll mod=1e9+7; int line[1000010], l[1000010], r[1000010], d[1000010], change[1000010],sum[1000010]; int n,m; int check(int x) { memset(change,0,sizeof(change)); for (int i = 1; i scanf("%d %d", &n, &m); for (int i = 1; i mid = (l + r) >> 1; if(!check(mid))//obj 5 r=mid; else l=mid+1; //cout if (x % i == 0) { int num = 0; while (x % i == 0) { x /= i; num++; } primeNum.push_back(num); primeVal.push_back(i); } } if (x > 1) { primeNum.push_back(1); primeVal.push_back(x); } for (unsigned int i = 0; i printf(" * "); } printf("\n(%lld ^ %lld)", primeVal[i], primeNum[i]); } printf("\n"); } int main() { CalaPrime(2021041820210418); long long int ans = 0; ans = 3 * 3 * 3 * 3 * 3; ans *= 10; printf("ans = %lld\n", ans); return 0; }以下是JAVA 组赛题,我的笔记分享给大家: 🚀6.门牌制作🚩🚩 题目如下 我的答案:624 🚩🚩 答案如下 public class Main1 { public static void main(String[] args) { int n = 2020, sum = 0; for (int i = 1; i int m = i % (k * 10) / k; if (m == 2) { sum ++; } } } System.out.println(sum); } } 🚀7.成绩分析🚩🚩 题目如下 🚩🚩 题目如下 把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。 接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字符。 得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。 🔑解析:首先这里我们用的是StringBuider,因为它的效率是最高的。这里我们才用字符串的一个好处是它自带的delete操作可以帮助我们删除元素,但正因如此也是我们容易掉坑的地方。当我们删除一个元素后,后续的元素会马上排上来,导致我们本该删除的元素的下标变化,导致了删掉了错误的元素。但其实也是有规律的,每删除一个元素后,后续所有待删除的元素都向左移动一格。比如有个字符串abcde,按照要求我们需要删掉ace这三个,a的下标为0删除后,原字符串变为bcde,这时本来下标为2的c变成了1,这时我们删掉c后再下一个待删除的元素e下标变为2了。于是本来需要隔一个再删除,却由于下标动态变化就只需要让i++而不是i+=2了。这里只需要考虑到长度为奇数时需要比偶数多删一次的问题即可,最后删剩的字符就是q。 🚩🚩 答案如下 public class 猜字母02 { public static void main(String[] args) { char[] a=new char[2014]; int index=0; for (int i = 0; i a[index++]= (char) ('a'+j);//这里涉及到ascii表的字母转换 } } //采用数组形式存放 int len=2014; while (len!=1){ int k=0; for (int i = 1; i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |