T1、合并两个有序数组
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
//定义一个新数组存储nums1中的数据
int[] nums = new int[m];
for(int i = 0; i < m; i++){
nums[i] = nums1[i];
}
//定义指针,p指向数组nums1、p1->nums、p2->nums2
int p = 0;
int p1 = 0;
int p2 = 0;
//比较nums和nums2中的值,将较小的数先存储在nums1中,三目运算符
while((p1 < m)&&(p2 < n)){
nums1[p++] = (nums[p1] < nums2[p2])?nums[p1++]:nums2[p2++];
}
if(p1 < m){
for(int i = p1; i < nums.length; i++){
nums1[p++] = nums[i];
}
}
if(p2 < n){
for(int i = p2; i < nums2.length; i++){
nums1[p++] = nums2[i];
}
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/25a5141dc9484a115ebcd99951191b7a.png)
蓝桥杯真题
T1、数列求值
给定数列 1,1,1,3,5,9,17,⋯从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
// int n = scan.nextInt();
int a = 1, b = 1, c = 1, d = 0;
for(int i = 4; i <= 20190324; i ++){
d = (a + b + c) % 10000;
a = b;
b = c;
c = d;
}
System.out.println(d);
scan.close();
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/59498ec325697e58225a24288ebb74ee.png)
T2、质数
我们知道第一个质数是 2、第二个质数是 3、第三个质数是 5……请你计算第 2019 个质数是多少?
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
//声明一个标记用于存储求得质数的位数
int zs = 0;
//声明一个用来循环的变量初始值
int a =1;
//while 循环条件为位数到达2019停止;
while(zs < 2019) {
//递增变量
a++;
int i;
//质数从2开始,循环2-a之间的数
for (i = 2; i <a; i++) {
//判断有没有数能被a整除如果有跳出循环
if(a % i == 0) {
break;
}
}
//如果上一步没有跳出循环则i等于a
if(i==a) {
//位数增加
zs++;
}
}
System.out.println(a);
scan.close();
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/42614116b0e5e88d3b2b6faf02f48ca2.png)
T3、饮料换购
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的 n 瓶饮料,最后他一共能喝到多少瓶饮料。
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int n = scan.nextInt();
for(int i = 3; i <= n; i += 3){
n++;
}
System.out.println(n);
scan.close();
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/9e1c82bb5024119b72c9c161ae095221.png)