首页 > 其他分享 >SMU 冬令营第五周蓝桥杯模拟赛

SMU 冬令营第五周蓝桥杯模拟赛

时间:2023-02-12 12:11:18浏览次数:48  
标签:平方 Scanner 冬令营 int SMU System 蓝桥 yangHui public

A.[蓝桥杯 2021 省 B2] 特殊年份

题目:

今年是 2021 年,2021 这个数字非常特殊, 它的千位和十位相等, 个位比百位大 1,我们称满足这样条件的年份为特殊年份。

输入 5 个年份,请计算这里面有多少个特殊年份。

思路:

将每一位拿出来判断就可以了。

代码:

点击查看代码
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int[] arr = new int[5];
		for(int i = 0;i < 5;i++) {
			arr[i] = scanner.nextInt();
		}
		int count = 0;
		for(int i = 0;i < 5;i++) {
			int a = arr[i]/1000;
			int b = arr[i]%1000/100;
			int c = arr[i]%100/10;
			int d = arr[i]%10;
			if(a == c&&b+1==d) {
				count++;
			}
		}
		System.out.println(count);
	}
}

B.[蓝桥杯 2021 省 AB2] 小平方

题目:

小蓝发现,对于一个正整数 n 和一个小于 n 的正整数 v,将 v 平方后对 n 取余可能小于 n 的一半,也可能大于等于 n 的一半。

请问,在 1 到 n−1 中, 有多少个数平方后除以 n 的余数小于 n 的一半。

例如,当 n=4 时,1,2,3 的平方除以 4 的余数都小于 4 的一半。

又如,当 n=5 时, 1,4 的平方除以 5 的余数都是 1,小于 5 的一半。而 2,3 的平方除以 5 的余数都是 4, 大于等于 5 的一半。

思路:

从1开始到n-1,判断每个数的平方取余乘 2 后是不是小于n的就行。这里用乘法比用除法更好,不然可能在边界会出现一些问题。

代码:

点击查看代码
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		int count = 0;
		for(int i = 1;i < n;i++) {
			int m = i*i;
			if((m%n)*2<n) {
				count++;
				System.out.println(i);
			}
		}
		System.out.println(count);
	}
}

C.[蓝桥杯 2021 省 AB2] 完全平方数

题目:

一个整数 a 是一个完全平方数,是指它是某一个整数的平方,即存在一个 整数 b,使得 a=b^2。
给定一个正整数 n,请找到最小的正整数 x,使得它们的乘积是一个完全平方数。

例如:12 得到的结果就是3。因为12*3=36,36是6的平方,3是最小的能够使12乘上它后得到完全平方数。

思路:

输入这个数后首先判断一下这个数是不是质数,如果是质数的话就那么最小就是这个数本身符合条件,因为我们要找到最小的符合条件的数,就要拆分出这个数的因子,比如12=223,这个里面就有2的平方,那么如果再乘上一个3,那不就是一个完全平方数嘛,是质数的话就不能找到一个数的平方乘某个数的这种形式。
如果不是质数的话,就用变量i从这个数的平方根到1开始遍历,因为我们要找到这个数就要找到(ii)j的这种形式,ii最大的时候得到的j就最小,所以我们的i就从最大遍历到最小,一旦n取ii的模为0,也就是刚好除尽,就找到了这个数,并且还是最小的。

代码:

点击查看代码
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		long n = scanner.nextLong();
		boolean flag = true;
		for(int i = 2;i < Math.sqrt(n);i++) {
			if(n%i==0) {
				flag = false;
				break;
			}
		}
		if(flag) {
			System.out.println(n);
		}else {
			for(long i = (long) Math.sqrt(n);i>1;i--) {
				if(n%(i*i)==0) {
					long m = n/(i*i);
					System.out.println(m);
					return;
				}
			}
			System.out.println(n);
		}
	}
}

D.[蓝桥杯 2021 省 B] 时间显示

题目:

小蓝要和朋友合作开发一个时间显示的网站。在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 1970 年 1 月 1 日 00:00:00 到当前时刻经过的毫秒数。

现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要 显示出时分秒即可,毫秒也不用显示,直接舍去即可。

给定一个用整数表示的时间,请将这个时间对应的时分秒输出。

思路:

注意这里输入的是毫秒数,需要先转化为秒再进行计算。这里是不需要考虑有多少天的,因为只需要找到最后一天即可,直接对一天的秒数(86400)取模,就可以得到最后一天的多少秒。最开始就是因为考虑的天数,考虑了闰年什么的,将问题想复杂了。

代码:

点击查看代码
import java.util.Scanner;
public class MainE {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		long n = scanner.nextLong();
		n/=1000;   //输入的是毫秒,结果要的是时分秒,1s = 1000ms
		n%=86400;  //不需要关心闰年什么的,天数是不需要关心的
		long h = n/3600;
		n %= 3600;
		long m = n/60;
		long s = n%60;
		System.out.printf("%02d:%02d:%02d\n",h,m,s);
	}
}

E.[蓝桥杯 2021 省 B] 杨辉三角形

题目:

下面的图形是著名的杨辉三角形:

如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列:

1,1,1,1,2,1,1,3,3,1,1,4,6,4,1…

给定一个正整数 N,请你输出数列中第一次出现 N 是在第几个数。

思路:

首先得到这个杨辉三角,然后再遍历,找到第一次出现的地方,将下标记下来,然后按照规律算出是第几个数。

代码:

点击查看代码
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		long n = scanner.nextLong();
		if(n==1) {
			System.out.println(1);
			return;
		}
		int[][] yangHui = new int[20000][];
		int goali = 0,goalj = 0;
		for (int i = 0;i < yangHui.length;i++) {
			yangHui[i] = new int[i+1];
			yangHui[i][0]=yangHui[i][i]=1;
			for(int j = 1;j < yangHui[i].length-1;j++) {
				yangHui[i][j] = yangHui[i-1][j-1] + yangHui[i-1][j];
				if(yangHui[i][j]==n) {
					goali = i+1;
					goalj = j+1;
					int count = 0;
					for(int x = 1;x<=goali-1;x++) {
						for(int y = 1;y<=x;y++) {
							count++;
						}
					}
					count+=goalj;
					System.out.println(count);
					return;
				}
			}
		}		
	}
}

标签:平方,Scanner,冬令营,int,SMU,System,蓝桥,yangHui,public
From: https://www.cnblogs.com/Tcoo/p/17112747.html

相关文章