主页 > 其他  > 

第十四届蓝桥杯三月真题刷题训练——第2天

第十四届蓝桥杯三月真题刷题训练——第2天

目录

题目1:奇数倍数

代码: 

题目2:求值

代码:

题目3:求和

代码:

题目4:数位排序

代码:


题目1:奇数倍数 题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

请你找到最小的整数 XX 同时满足:

XX 是 20192019 的整倍数;XX 的每一位数字都是奇数。 运行限制 最大运行时间:1s最大运行内存: 128M 代码:  package 第十四届蓝桥杯三月真题刷题训练.第二天; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.StreamTokenizer; /** * @author yx * @date 2023-03-05 13:09 */ public class 奇数倍数 { static PrintWriter out =new PrintWriter(System.out); static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in)); static StreamTokenizer in=new StreamTokenizer(ins); /** * 输入 * in.nextToken() * int a= (int)in.nval; * * 输出 * out.print(); * out.flush(); */ public static void main(String[] args) { int i=1; while (true){ int n=2019*i; if(isJiShu(n)){ System.out.println(n); break; } i++; } } static boolean isJiShu(int n){ int temp=0; while (n!=0){ temp=n%10; if(temp%2==0){ return false; } n/=10; } return true; } }

题目2:求值 题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

学习了约数后,小明对于约数很好奇,他发现,给定一个正整数 tt,总是可以找到含有 tt 个约数的整数。小明对于含有 tt 个约数的最小数非常感兴趣,并把它定义为 StSt​ 。

例如 S1=1,S2=2,S3=4,S4=6,⋅⋅⋅S1​=1,S2​=2,S3​=4,S4​=6,⋅⋅⋅ 。

现在小明想知道,当 t=100t=100 时,StSt​ 是多少?即 S100S100​ 是多少?

运行限制 最大运行时间:1s最大运行内存: 128M 代码: package 第十四届蓝桥杯三月真题刷题训练.第二天; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.StreamTokenizer; import java.util.HashSet; /** * @author yx * @date 2023-03-05 13:38 */ public class 求值 { static PrintWriter out =new PrintWriter(System.out); static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in)); static StreamTokenizer in=new StreamTokenizer(ins); /** * 输入 * in.nextToken() * int a= (int)in.nval; * * 输出 * out.print(); * out.flush(); */ public static void main(String[] args) { int i=1; while (true){ if(numberOfZhiYinZi(i)==100){ System.out.println(i); break; } i++; } } static int numberOfZhiYinZi(int n){ HashSet<Integer> set=new HashSet<>(); for (int i = 1; i <= Math.sqrt(n); i++) { if(n%i==0){ set.add(i); set.add(n/i); } } return set.size(); } }

题目3:求和 问题描述

给定 nn 个整数 a1,a2,⋅⋅⋅,ana1​,a2​,⋅⋅⋅,an​ ,求它们两两相乘再相加的和,即:

S=a1⋅a2+a1⋅a3+⋯+a1⋅an+a2⋅a3+⋯+an−2⋅an−1+an−2⋅an+an−1⋅anS=a1​⋅a2​+a1​⋅a3​+⋯+a1​⋅an​+a2​⋅a3​+⋯+an−2​⋅an−1​+an−2​⋅an​+an−1​⋅an​

输入格式

输入的第一行包含一个整数 nn。

第二行包含 nn 个整数 a1,a2,⋯ ,ana1​,a2​,⋯,an​。

输出格式

输出一个整数 SS,表示所求的和。请使用合适的数据类型进行运算。

样例输入 4 1 3 6 9 样例输出 117 评测用例规模与约定

对于 30%30% 的数据,1≤n≤1000,1≤ai≤100 。

对于所有评测用例, 1≤n≤200000,1≤ai≤1000 。

运行限制 最大运行时间:1s最大运行内存: 512M 代码: package 第十四届蓝桥杯三月真题刷题训练.第二天; import java.io.*; import java.util.ArrayList; /** * @author yx * @date 2023-03-05 13:57 */ public class 求和 { static PrintWriter out =new PrintWriter(System.out); static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in)); static StreamTokenizer in=new StreamTokenizer(ins); /** * 输入 * in.nextToken() * int a= (int)in.nval; * * 输出 * out.print(); * out.flush(); */ public static void main(String[] args) throws IOException { in.nextToken(); int n=(int) in.nval; ArrayList<Integer> list=new ArrayList<>(); long sum=0; long ans=0; for (int i = 0; i < n; i++) { in.nextToken(); int temp=(int)in.nval; list.add(temp); sum += temp; } for (int i = 0; i < n; i++) { ans+=(sum-list.get(i))*list.get(i); sum-=list.get(i); } out.println(ans); out.flush(); } }

题目4:数位排序 问题描述

小蓝对一个数的数位之和很感兴趣, 今天他要按照数位之和给数排序。当 两个数各个数位之和不同时, 将数位和较小的排在前面, 当数位之和相等时, 将数值小的排在前面。

例如, 2022 排在 409 前面, 因为 2022 的数位之和是 6, 小于 409 的数位 之和 13 。

又如, 6 排在 2022 前面, 因为它们的数位之和相同, 而 6 小于 2022 。

给定正整数 n,m, 请问对 1 到 n 采用这种方法排序时, 排在第 m 个的元 素是多少?

输入格式

输入第一行包含一个正整数 nn 。

第二行包含一个正整数 mm 。

输出格式

输出一行包含一个整数, 表示答案。

样例输入 13 5 样例输出 3 样例说明

1 到 13 的排序为: 1,10,2,11,3,12,4,13,5,6,7,8,9。第 5 个数为 3 。

评测用例规模与约定

对于 30%的评测用例, 1≤m≤n≤300 。

对于 50% 的评测用例, 1≤m≤n≤1000 。

对于所有评测用例, 1≤m≤n≤1000000 。

运行限制 最大运行时间:3s最大运行内存: 512M 代码: package 第十四届蓝桥杯三月真题刷题训练.第二天; import java.io.*; import java.lang.reflect.AnnotatedArrayType; import java.util.ArrayList; import java.util.Collections; /** * @author yx * @date 2023-03-05 14:08 */ public class 数位排序 { static PrintWriter out =new PrintWriter(System.out); static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in)); static StreamTokenizer in=new StreamTokenizer(ins); /** * 输入 * in.nextToken() * int a= (int)in.nval; * * 输出 * out.print(); * out.flush(); */ static class Node implements Comparable<Node>{ int sumOfShuWei=0; int number=0; Node(int number){ this.number=number; this.sumOfShuWei=ShuWei(this.number); } int ShuWei(int n){ int sum=0; int temp=0; while (n!=0){ temp=n%10; sum+=temp; n/=10; } return sum; } //(总分降序排列) //如果左边的this大于o,则返回-1,不调换位置 //如果左边的this小于o,则返回1,调换位置 @Override public int compareTo(Node o) { //左边大于右边调换位置,小的排在前面 if(this.sumOfShuWei>o.sumOfShuWei){ return 1; }else if(this.sumOfShuWei==o.sumOfShuWei){ if(this.number>o.number){ return 1; }else { return -1; } }else { return -1; } } } public static void main(String[] args) throws IOException { in.nextToken(); int n=(int) in.nval; in.nextToken(); int m=(int) in.nval; ArrayList<Node>list=new ArrayList<>(); for (int i = 1; i <= n; i++) { Node node=new Node(i); list.add(node); } Collections.sort(list); out.print(list.get(m-1).number); out.flush(); } }

 

 

标签:

第十四届蓝桥杯三月真题刷题训练——第2天由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“第十四届蓝桥杯三月真题刷题训练——第2天