总贴:第十四届蓝桥杯三月真题刷题训练——第 12 天(3.15)-CSDN社区
拉跨的身体……;
题1、0 的个数 - 蓝桥云课 (lanqiao.cn)
问题描述
给定一个正整数 n ,请问 n 的十进制表示中末尾总共有几个 0 ?
输入格式
输入一行包含一个正整数 n。
输出格式
输出一个整数,表示答案。
样例输入
20220000
样例输出
4
题解、(暴力)
根据题目描述我们需要求除10进制数最后几个0;我们可以将这个数变成String 倒着遍历,如果取出的字符表示’0‘,就结束;
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
String s = scan.next();
long ans = 0 ;
for(int i = s.length()-1; i >= 0;i--){
if(s.charAt(i) == '0') ans++;
else break;
}
System.out.println(ans);
scan.close();
}
}
题2、超级质数 - 蓝桥云课 (lanqiao.cn)
问题描述
如果一个质数 � P 的每位数字都是质数, 而且每两个相邻的数字组成的两位 数是质数, 而且每三位相邻的数字组成的三位数是质数, 依次类推, 如果每相 邻的 � k 位数字组成的 � k 位数都是质数, 则 � P 称为超级质数。
如果把超级质数 � P 看成一个字符串, 则这个超级质数的每个子串都是质 数。
例如, 53 是一个超级质数。
请问, 最大的超级质数是多少?
答案提交
这是一道结果填空的题, 你只需要算出结果后提交即可。本题的结果为一 个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。
运行限制
最大运行时间:1s
最大运行内存: 256M
题解、(暴力)
刚开始看见最大超级质数就想到737373,但是它可以被73整除;返回不会太大,评论区逛了一圈373;范围就定在 1000 - 2 ;如何判断超级质数我可以依次截取不同区域的字符串,然后处于(2 - 它本身-1)的数、不对好像Math.sqrt()就可以了;如果过程中有等于0的这个数就不是质数,如果这个数==1 它也不属于;
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码,...
for(int i = 1000 ; i >= 2 ;i--){
if(isSuShuAnd(i)){
System.out.println(i);
break;
}
}
scan.close();
}
static boolean isSuShuAnd(int x){
String s = String.valueOf(x);
for(int i = 0 ; i < s.length() ; i++){
for(int j = i ; j < s.length(); j++){
int temp = Integer.parseInt(s.substring(i , j+1));
if(!isSuShu(temp)) return false;
}
}
return true;
}
static boolean isSuShu(int x){
if(x == 1) return false;
for(int i = 2 ; i < x;i++){
if(x % i == 0) return false;
}
return true;
}
}