-
2022-01-24 21:50:22
数列求值(点击前往做题)
输入描述:
给定数列 1, 1, 1, 3, 5, 9, 17, \cdots1,1,1,3,5,9,17,⋯,从第 44 项开始,每项都是前 33 项的和。
求第 2019032420190324 项的最后 44 位数字。输出描述:
无
输入输出样例:
无
思路:
1、使用余数进行递推
代码:
#include <iostream> using namespace std; int main() { int a[20190324]={1,1,1,3}; for(int i=3;i<20190324;i++) { a[i]=(a[i-1]+a[i-2]+a[i-3])%10000; } cout<<a[20190323]<<endl; return 0; }
更多相关内容 -
蓝桥杯真题(2019年填空题)
2022-03-22 18:27:20蓝桥杯真题(2019年填空题) hi,你好。 第一题 思路:该题可以动脑子,直接比较数的大小,也可以一个一个输入,注意每个队员只能选一次。 代码: import java.util.Scanner; public class ChosenTeam { public ...蓝桥杯真题(2019年填空题)
hi,你好。
第一题
思路:该题可以动脑子,直接比较数的大小,也可以一个一个输入,注意每个队员只能选一次。
代码:import java.util.Scanner; public class ChosenTeam { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[][] chosenTeam = new int[20][5]; try { for (int i = 0; i < 20; i++) { for (int j = 0; j < 5; j++) { chosenTeam[i][j] = sc.nextInt(); } } // 接下来就是要输入的数据,五个for搞定 // 就是要输入的数据太多,反而不如直接口算比较,结果更快 int maxSum = 0; for (int z = 0; z < 20; z++) for (int y = 0; y < 20; y++) for (int p = 0; p < 20; p++) for (int s = 0; s < 20; s++) for (int g = 0; g < 20; g++) if ((z != y && z != p && z != s && z != g) && (y != p && y != z && y != g) && (p != z && p != g) && s != g) { int max = chosenTeam[z][0] + chosenTeam[y][1] + chosenTeam[p][2] + chosenTeam[s][3] + chosenTeam[g][4]; if (max > maxSum) maxSum = max; } System.out.println(maxSum); } catch (Exception e) { sc.close(); } } }
结果:490
第二题
思路:要求是不同的非空字串,可以用String.substring()方法求字串,不同子串可以用Set集合,根据给出的例子,可以看出字串在变化时,一开始,间隔一个字符,每次移动距离为1;然后,间隔俩个字符,每次移动距离也为1,一直到间隔的距离为整个字符串。
代码:import java.util.HashSet; import java.util.Set; public class 不同字串 { public static void main(String[] args) { String data = "0100110001010001"; Set<String> son = new HashSet<String>(); for (int removing = 0; removing <= data.length() - 1; removing++) { for (int begin = 0, end = 1 + removing; end <= data.length(); begin++, end++) { son.add(data.substring(begin, end)); } } System.out.println(son.size()); } }
结果:100
第三题
思路:要求的是20190324最后4位,如果将该项所有位数都存储,用斐波那契数列的思想,数肯定会溢出,原因是太大了,那就只保留后四位就行了。
代码:public class SeekingValue { public static void main(String[] args) { int z = 1, y = 1, p = 1; for (int x = 3; x < 20190324; x++) { int interval = (z + y + p) % 10000; z = y; y = p; p = interval; } System.out.println(p); } }
结果:4659
第四题
思路:
1.不包含2和4,2019可以怎么分解成三个数之和?
2.三个数的组合
代码:public class disintegration{ public static void main(String[] args) { int data = 2019; int digit = 0; for (int z = 1; z < data; z++) { if ((z + "").indexOf("2") != -1 || (z + "").indexOf("4") != -1) continue; for (int y = z + 1; y < data; y++) { if ((y + "").indexOf("2") != -1 || (y + "").indexOf("4") != -1) continue; int p = data - z - y; if (z == p || y == p || z == y) continue; if (p > 0 && (p + "").indexOf("2") == -1 && (p + "").indexOf("4") == -1) digit++; } } System.out.println(digit / 3); } } System.out.println(digit / 3); } }
结果:40785
--------------------------------------未完待续 -
蓝桥杯填空题集(Java)
2021-04-07 22:00:59一、标题:取数位 求1个整数的第k位数字有很多种方法。 以下的方法就是一种。 public class 取数位 { static int len(int x) { if (x < 10) return 1;... return len(x / 10) + 1;... // 填空 }一、标题:取数位
求1个整数的第k位数字有很多种方法。
以下的方法就是一种。public class 取数位 { static int len(int x) { if (x < 10) return 1; return len(x / 10) + 1; } // 取x的第k位数字 static int f(int x, int k) { if (len(x) - k == 0) return x % 10; return ——————; // 填空 } public static void main(String[] args) { int x = 23513; // System.out.println(len(x)); System.out.println(f(x, 3));// 应该打印5。 } }
对于题目中的测试数据,应该打印5。
答案:f(x / 10, k)
二、标题:最大公共子串
最大公共子串长度问题就是: 求两个串的所有子串中能够匹配上的最大长度是多少。
比如:“abcdkkk” 和 “baabcdadabc”, 可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。
下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。
请分析该解法的思路,并补全划线部分缺失的代码。
这个主要是矩阵法求解字符串匹配的问题,我觉得很巧妙!但是我想不到!
public class Main { static int f(String s1, String s2) { char[] c1 = s1.toCharArray(); char[] c2 = s2.toCharArray(); int[][] a = new int[c1.length+1][c2.length+1]; int max = 0; for(int i=1; i<a.length; i++){ for(int j=1; j<a[i].length; j++){ if(c1[i-1]==c2[j-1]) { a[i][j] = __________________; //填空 if(a[i][j] > max) max = a[i][j]; } } } return max; } public static void main(String[] args){ int n = f("abcdkkk", "baabcdadabc"); System.out.println(n); } }
注意:只提交缺少的代码,不要提交已有的代码和符号。也不要提交说明性文字。
答案:
a[ i ][ j ] = a[i - 1] [j - 1] + 1; // 靠感觉,但是我没有感觉
三、标题:字母组串
由 A,B,C 这3个字母就可以组成许多串。 比如:“A”,“AB”,“ABC”,“ABA”,“AACBB” …
现在,小明正在思考一个问题: 如果每个字母的个数有限定,能组成多少个已知长度的串呢?
他请好朋友来帮忙,很快得到了代码, 解决方案超级简单,然而最重要的部分却语焉不详。
请仔细分析源码,填写划线部分缺少的内容。
public class 字母组串 { // a个A,b个B,c个C 字母,能组成多少个不同的长度为n的串。 static int f(int a, int b, int c, int n) { if (a < 0 || b < 0 || c < 0) return 0; if (n == 0) return 1; return ————————————————————; // 填空 } public static void main(String[] args) { System.out.println(f(1, 1, 1, 2)); System.out.println(f(1, 2, 3, 3)); } }
分析:
递归函数参数的含义
参数变化的方向
public class 字母组串 { // a个A,b个B,c个C 字母,能组成多少个不同的长度为n的串。 static int f(int a, int b, int c, int n) { if (a < 0 || b < 0 || c < 0) return 0; if (n == 0) return 1; return f(a - 1, b, c, n - 1) + f(a, b - 1, c, n - 1) + f(a, b, c - 1, n - 1); // 填空 } public static void main(String[] args) { System.out.println(f(1, 1, 1, 2)); System.out.println(f(1, 2, 3, 3)); } }
四、标题:9数算式
观察如下的算式: 9213 x 85674 = 789314562
左边的乘数和被乘数正好用到了1 ~ 9 的所有数字,每个1次。 而乘积恰好也是用到了1~9的所有数字,并且每个1次。
请你借助计算机的强大计算能力,找出满足如上要求的9数算式一共有多少个?
注意:
- 总数目包含题目给出的那个示例。
- 乘数和被乘数交换后作为同一方案来看待。
考察:求全排列+去重
关键点:考虑如何去重?
左右的乘数a * b=c 与 b*a =c都是一种方案,但是求解过程中会计算2次
去重:/2即可
易错点:乘积可能会有0的存在,应该判断一下public class 填空_九数算式 { static List<List<Integer>> list = new ArrayList<>(); static int count = 0; public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; dfs(arr, 0); func(); System.out.println(count / 2); } // 全排列 public static void dfs(int[] arr, int index) { if (index >= arr.length) { List<Integer> temp = new ArrayList<>(); for (int i = 0; i < arr.length; i++) { temp.add(arr[i]); } list.add(temp); return; } for (int i = index; i < arr.length; i++) { swap(arr, index, i); dfs(arr, index + 1); swap(arr, index, i); } } public static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } public static void func() { for (int i = 0; i < list.size(); i++) { List<Integer> temp = list.get(i); int left = 0; for (int j = 0; j < 9; j++) { int index = 0; int leftNum = 0; int rightNum = 0; if (left > 7) { break; } while (index <= left && left <= 7) {// 左边的数,从1位到7位 leftNum = leftNum * 10 + temp.get(index); index++; } while (index < 9) { rightNum = rightNum * 10 + temp.get(index); index++; } left++; long res = leftNum * rightNum; if (res < 123456789) { continue; } if (judge(res)) { count++; } } } } //judge判断错了 //因为还存在有0的乘积! public static boolean judge(long res) { String anString = res + ""; if (anString.indexOf('0') != -1) { return false; } HashSet<Integer> set = new HashSet<>(); while (res != 0) { int temp = (int) res % 10; set.add(temp); res /= 10; } return set.size() == 9; } }
-
c语言求解蓝桥杯蛇形填空真题
2022-02-21 19:52:05原题: 如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。 容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20行第20 列的数是多少? ...先请看代码,再讲解思路: ... if(i%2==0...原题:
如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列的数是多少?
先请看代码,再讲解思路:
#include <stdio.h> int arr[50][50]={0}; int main() { int i,j,pen=1; for(i=1;i<=50;i++) { for(j=1;j<=i;j++) { if(i%2==0) arr[i][i-j+1]=pen; else arr[i][j]=pen; pen++; } } printf("%d",arr[39][20]); return 0; }
解析思路:
题目中要求我们求第20行第20列的数,而我的代码中输出的arr实际情况是
1
3 2
4 5 6 ....
所以说我要做的就是将arr数组的数横坐标向上置顶,纵坐标保持不变就可以得到我们的蛇行数组,所以题目中的第20行第20列中的那个数,实际上就是我们arr数组的第39行,第20列。
-
蓝桥杯 往届部分填空习题总结
2018-03-26 21:59:36一、煤球数目(第七届B组)有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?... -
蓝桥杯历年比赛真题
2013-12-11 20:38:24内含有蓝桥杯历年试题的PDF文件和Word文档文件,可以帮助有兴趣的同学学习!祝获得好成绩,冲入北京决赛! -
蓝桥杯真题--卡片
2021-11-11 22:46:39题目描述 小蓝有很多数字卡片,每张卡片上都是数字 0 到 9。小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。小蓝想知道自己能从 1 拼到多少。... -
蓝桥杯填空题(C/C++)
2021-04-17 09:54:41第三题(19年) 标题:数列求值 (本题总分:10 分)### 给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求 第 20190324 项的最后 4 位数字。 答案:4659 #include <... -
蓝桥杯真题系列:第十一届蓝桥杯C语言B组集锦
2022-01-24 11:28:38解答:作为填空题第一题,难度比较低,暴力查2即可。 cnt = 0 for i in range(1,2021): for j in str(i): if j == '2': cnt = cnt + 1 print(cnt) 第二题:既约分数 题解:这个题我想到的办法就是暴力... -
蓝桥杯真题:最短路
2022-02-15 15:48:50题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 如下图所示,GG 是一个无向图,其中蓝色边的长度是 11、橘色边的长度是 22、绿色边的长度是 33。 则从 AA 到 SS 的最短距离是... -
蓝桥杯真题:分数(2018 年省赛)
2021-11-14 10:27:09本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 每项是前一项的一半,如果一共有 2020 项,求这个和是多少,结果用分数表示出来。 运行限制 最大运行时间:1s 最大运行内存: 128M ... -
蓝桥杯真题:卡片
2022-02-25 21:10:10蓝桥杯 -
蓝桥杯真题:一共多少个星期一?
2022-01-21 21:22:25本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 整个 2020 世纪(19011901 年 11 月 11 日至 20002000 年 1212 月 3131 日之间),一共有多少个星期一?(不要告诉我你不知道今天是星期... -
蓝桥杯真题-空间(填空-10分)
2022-03-02 22:56:08小蓝准备用 256MB的内存空间开一个数组,数组的每个元素都是 32 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB 的空间可以存储多少个 32位二进制整数? 输入描述: ... -
蓝桥杯练习系统试题及答案 JAVA版真题答案
2019-03-13 15:04:58包含了官网练习系统的试题及答案,java版和c++版本均有,同时还附带java版的真题及答案 -
2015第六届蓝桥杯真题预赛选择填空
2019-03-22 21:52:35//填空 } } } /* 九数组分数 1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法? 下面的程序实现了该功能,请填写划线部分缺失的代码。 public class A { } ... -
蓝桥杯真题:星期一(2018 年省赛)
2021-11-12 15:48:53本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 整个 2020 世纪(19011901 年 11 月 11 日至 20002000 年 1212 月 3131 日之间),一共有多少个星期一?(不要告诉我你不知道今天是星期... -
蓝桥杯真题
2022-03-26 08:40:31蓝桥2019真题pythonB组 -
蓝桥杯真题:迷宫
2022-02-28 21:29:10//往下 } int main(){ //本题是填空题,直接输出答案: // cout ; return 0; //如果不是填空,就写下面的代码: for (int i = 0; i ; i++) for (int j = 0; j ; j++) cin >> mp[i][j]; //读取迷宫图 for (int i = 0... -
【蓝桥杯真题】2021年蓝桥杯省赛B组题目解析+代码(C/C++)
2021-12-18 14:15:082021年蓝桥杯省赛B组题目解析,附C/C++代码 -
蓝桥杯历年真题分类汇总(史上最全版本,一定不要错过)
2022-04-06 11:08:37历年真题 视频讲解 比赛技巧 题型总结 2021 2020 2019 2018 2017 2016 2015 2014 2013 ... -
蓝桥杯填空题2020省赛——既约分数
2022-03-19 17:10:25import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int ans=4039;... -
2018年第九届蓝桥杯省赛真题C/C++(B组)
2018-04-01 19:00:492018年第九届蓝桥杯省赛真题 C/C++ 语言大学B组原题。 -
蓝桥杯 填空题
2020-02-28 20:50:571779年365天 1780年366天 …… 过完1798年共7916天,还差197天 1799年前六个月共181天,还差16天 因此答案为1799-7-16 最后一句:对于蓝桥杯省的填空题,excel是个很好的工具,特别是求和公式。 excel的第二种解法... -
蓝桥杯真题:排序
2022-02-19 17:31:34题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。 在冒泡排序中,每次只能交换相邻的两个元素。 小蓝发现,如果对一个... -
[蓝桥杯]2019年第十届省赛真题C/C++ B组 填空+大题
2020-09-08 21:01:29第十届蓝桥杯省赛题目填空A——组队填空B——年号字串大题F:特别数的和 填空A——组队 作为篮球队教练,你需要从名单(见图)中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容。 每位球员担任 1 号位至 5 号... -
蓝桥杯真题:七段码
2022-02-25 18:38:53蓝桥杯 dfs 并查集 -
蓝桥杯填空题(一)
2019-03-21 19:32:47快速排序。(2018) 以下代码可以从数组a[]中找... _____________________________________________// 填空处 } } int main() { int x[] = {1,2,3,4,5,6,7,8,9}; f(x,0); return0; } 答案:{ t=x[k]; x[k]=... -
蓝桥杯python历届真题总结(持续更新)
2022-01-28 22:25:53浪费太多时间在填空题不太值这个分值的。 回文日期 输入描述 输入包含一个八位整数 N,表示日期。 对于所有评测用例,10000101≤N≤89991231,保证 N 是一个合法日期的 8 位数表示。 输出描述 输出两行,每行 1 个八...