经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 其他 » 职业生涯 » 查看文章
【笔试实战】蓝桥官网在线刷题100题计划【第一轮】
来源:cnblogs  作者:天佑1  时间:2022/11/28 8:58:02  对本文有异议

A+B

【题目描述】

欢迎开启算法 OJ 题的大门,本题为经典的 A+B

A+B 入门题,我们会以此题为示例介绍蓝桥云课 OJ 系统的正确使用方法。

输入两个正整数 A,B,请你计算 A+B,并输出。

【分析与解答】

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int a = scan.nextInt();
  9. int b = scan.nextInt();
  10. System.out.println(a+b);
  11. scan.close();
  12. }
  13. }

MP3储存

【题目描述】

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

如果一个 MP3 文件占用磁盘的大小是 4MB,小蓝的硬盘还剩下 100GB 的空间,请问他还可以放多少个这样的 MP3 文件?

【分析与解答】

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. System.out.println(25600);
  9. scan.close();
  10. }
  11. }

单词分析

【题目描述】

小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。

现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。

输入描述

输入一行包含一个单词,单词只由小写英文字母组成。

对于所有的评测用例,输入的单词长度不超过 1000。

输出描述

输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。

第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。

输入输出样例

示例 1

输入

lanqiao

输出

a 2

示例 2

输入

longlonglongistoolong

输出

o 6

运行限制

最大运行时间:1s

最大运行内存: 256M

【分析与解答】

这道题我一开始想直接在字符串上搞动作,后来发现这个方法有个什么问题,就是会搞乱字符串的顺序,后来发现可以用数组索引的方式,这样就简单多了

先统计每个字符所在的位置出现的次数

然后在作出比较就可以了

这样做就简化了统计之后锁定响应位置的事情

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. String temp=scan.nextLine();
  9. int a[]=new int[26];
  10. for(int i=0;i<temp.length();i++){
  11. a[temp.charAt(i)-'a']++;
  12. }
  13. int max=0;
  14. char ch='a';
  15. for(int i=0;i<a.length;i++){
  16. if(a[i]>max){
  17. max=a[i];
  18. ch=(char)('a'+i);
  19. }
  20. }
  21. System.out.println(ch);
  22. System.out.println(max);
  23. scan.close();
  24. }
  25. }

成绩统计

【题目描述】

小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。

如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。

请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。

输入描述

输入的第一行包含一个整数 n\ (1 \leq n \leq 10^4)n (1≤n≤10

4

),表示考试人数。

接下来 nn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。

输出描述

输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。

输入输出样例

示例

输入

7

80

92

56

74

88

100

0

copy

输出

71%

43%

【分析与解答】

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int n=scan.nextInt();
  9. int a[]=new int[2];
  10. for(int i=0;i<n;i++){
  11. int temp=scan.nextInt();
  12. if(temp>=85){
  13. a[0]++;
  14. }else if(temp>=60){
  15. a[1]++;
  16. }
  17. }
  18. System.out.println(Math.round((double)(a[1]+a[0])*100/n)+"%");
  19. System.out.println(Math.round((double)a[0]*100/n)+"%");
  20. scan.close();
  21. }
  22. }

最短路

【题目描述】

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

如下图所示,GG 是一个无向图,其中蓝色边的长度是 11、橘色边的长度是 22、绿色边的长度是 33

则从 AA SS 的最短距离是多少?

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. System.out.println(6);
  9. scan.close();
  10. }
  11. }

门牌制作

【题目描述】

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

小蓝要为一条街的住户制作门牌号。

这条街一共有 20202020 位住户,门牌号从 11 到 20202020 编号。

小蓝制作门牌的方法是先制作 00 到 99 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、71、0、1、7,即需要 11 个字符 00,22 个字符 11,11 个字符 77。

请问要制作所有的 11 到 20202020 号门牌,总共需要多少个字符 22?

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int count=0;
  9. String aString="";
  10. for (int i = 1; i <=2020; i++) {
  11. aString=i+"";
  12. for (int j = 0; j < aString.length(); j++) {
  13. if(aString.charAt(j)=='2') {
  14. count++;
  15. }
  16. }
  17. }
  18. System.out.println(count);
  19. scan.close();
  20. }
  21. }

购物单

【题目描述】

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

小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。

这不,大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。

小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。

现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。

取款机只能提供 100100 元面额的纸币。小明想尽可能少取些现金,够用就行了。 你的任务是计算出,小明最少需要取多少现金。

以下是让人头疼的购物单,为了保护隐私,物品名称被隐藏了。

**** 180.90 88折

**** 10.25 65折

**** 56.14 9折

**** 104.65 9折

**** 100.30 88折

**** 297.15 半价

**** 26.75 65折

**** 130.62 半价

**** 240.28 58折

**** 270.62 8折

**** 115.87 88折

**** 247.34 95折

**** 73.21 9折

**** 101.00 半价

**** 79.54 半价

**** 278.44 7折

**** 199.26 半价

**** 12.97 9折

**** 166.30 78折

**** 125.50 58折

**** 84.98 9折

**** 113.35 68折

**** 166.57 半价

**** 42.56 9折

**** 81.90 95折

**** 131.78 8折

**** 255.89 78折

**** 109.17 9折

**** 146.69 68折

**** 139.33 65折

**** 141.16 78折

**** 154.74 8折

**** 59.42 8折

**** 85.44 68折

**** 293.70 88折

**** 261.79 65折

**** 11.30 88折

**** 268.27 58折

**** 128.29 88折

**** 251.03 8折

**** 208.39 75折

**** 128.88 75折

**** 62.06 9折

**** 225.87 75折

**** 12.89 75折

**** 34.28 75折

**** 62.16 58折

**** 129.12 半价

**** 218.37 半价

**** 289.69 8折

需要说明的是,88 折指的是按标价的 88% 计算,而 8 折是按 80% 计算,余者类推。 特别地,半价是按 50% 计算。

请输出小明要从取款机上提取的金额,单位是元。

【分析与解答】

很唬人的一道题,其实没啥技术含量,根本不用动用编程,用execl解决就可以了

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. System.out.println(5200);
  9. scan.close();
  10. }
  11. }

空间

【题目描述】

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

小蓝准备用 256MB的内存空间开一个数组,数组的每个元素都是 32 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB 的空间可以存储多少个 32 位二进制整数?

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. int a=256*8*1024*1024/32;
  8. //在此输入您的代码...
  9. System.out.println(Math.abs(a));
  10. scan.close();
  11. }
  12. }

跑步

【题目描述】

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

小蓝每天都锻炼身体。

正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2千米。如果同时是周一或月初,小蓝也是跑 2 千米。

小蓝跑步已经坚持了很长时间,从 2000 年 1月 1 日周六(含)到 2020 年 10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

这道题我建议也是用execl解决

1.新建一个Excel文件

2.填充2000年1月1日到2020年10月1日

3.通过单元格格式中在日期后加上对应的星期数 4.单元格行数记为h;查找“星期一”,找到的数量记为a; 查找“月1日”(不能是1日,否则如11日也会计入),找到的数量记为b;查找“月1日星期一”,找到的数量记为c;答案n=h+a+b-c;

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. System.out.println(8879);
  9. scan.close();
  10. }
  11. }

蛇形填数

【题目描述】

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

如下图所示,小明用从 11 开始的正整数“蛇形”填充无限大的矩阵。

1 2 6 7 15 ...

3 5 8 14 ...

4 9 13 ...

10 12 ...

11 ...

...

容易看出矩阵第二行第二列中的数是 55。请你计算矩阵中第 2020 行第 2020 列的数是多少?

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

这道题是来回绕,那只要跟着他一起绕就可以了

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. System.out.println(761);
  9. scan.close();
  10. }
  11. }

棋盘放麦子

【题目描述】

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

你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第 1 个棋盘格放 11 粒麦子,在第 2 个棋盘格放 2 粒麦子,在第 3 个棋盘格放 4 粒麦子,在第 4 个棋盘格放 8 粒麦子,......后一格的数字是前一格的两倍,直到放完所有棋盘格(国际象棋共有 64 格)。

国王以为他只是想要一袋麦子而已,哈哈大笑。

当时的条件下无法准确计算,但估算结果令人吃惊:即使全世界都铺满麦子也不够用!

请你借助计算机准确地计算,到底需要多少粒麦子。

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

【Java语言实现】
  1. import java.util.Scanner;
  2. import java.math.BigInteger;
  3. // 1:无需package
  4. // 2: 类名必须Main, 不可修改
  5. public class Main {
  6. public static void main(String[] args) {
  7. Scanner scan = new Scanner(System.in);
  8. //在此输入您的代码...
  9. BigInteger a =new BigInteger("0");
  10. BigInteger b = new BigInteger("2");
  11. for (int i = 0; i < 64; i++) {
  12. a = a.add(b.pow(i));
  13. }
  14. System.out.println(a);
  15. scan.close();
  16. }
  17. }

特别数的和

【题目描述】

小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。

请问,在 1 到 n 中,所有这样的数的和是多少?

输入描述

输入格式:

输入一行包含两个整数 n(1 ≤ n ≤ 10^4)

输出描述

输出一行,包含一个整数,表示满足条件的数的和。

输入输出样例

示例

输入

40

输出

574

运行限制

最大运行时间:1s

最大运行内存: 256M

【分析与解答】

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. System.out.println(getContains(scan.nextInt()));
  9. scan.close();
  10. }
  11. public static int getContains(int num) {
  12. int total = 0;
  13. if(num>=1 && num<=10000) {
  14. for(int i=0;i<=num;i++) {
  15. if((i+"").indexOf("0")!=-1 || (i+"").indexOf("1")!=-1 || (i+"").indexOf("2")!=-1 || (i+"").indexOf("9")!=-1) {
  16. total += i;
  17. }
  18. }
  19. }
  20. return total;
  21. }
  22. }

质数

【题目描述】

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

我们知道第一个质数是 2、第二个质数是 3、第三个质数是 5……

请你计算第 2019个质数是多少?

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int count=0;
  9. for(int i=2;i<Integer.MAX_VALUE;i++){
  10. if(judge(i)){
  11. count++;
  12. }
  13. if(count==2019){
  14. System.out.println(i);
  15. break;
  16. }
  17. }
  18. scan.close();
  19. }
  20. public static boolean judge(int a){
  21. for(int i=2;i<=Math.sqrt(a);i++){
  22. if(a%i==0){
  23. return false;
  24. }
  25. }
  26. return true;
  27. }
  28. }

奇数倍数

【题目描述】

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

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

X是 2019的整倍数;

X的每一位数字都是奇数。

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. for(long i= 2019;i<Long.MAX_VALUE;i=i+2019){
  9. if(judge(i)){
  10. System.out.println(i);
  11. break;
  12. }
  13. }
  14. scan.close();
  15. }
  16. public static boolean judge(long a){
  17. String res=a+"";
  18. for(int i=0;i<res.length();i++){
  19. if((res.charAt(i)-'0')%2==0){
  20. return false;
  21. }
  22. }
  23. return true;
  24. }
  25. }

排序

【题目描述】

给定一个长度为 NN 的数组 AA,请你先从小到大输出它的每个元素,再从大到小输出它的每个元素。

输入描述

输出描述

输出共两行,每行包含 NN 个整数,表示答案。

输入输出样例

示例 1

输入

  1. 5 1 3 2 6 5

输出

  1. 1 2 3 5 6
  2. 6 5 3 2 1

运行限制

  • 最大运行时间:3s
  • 最大运行内存: 128M
【分析与解答】

这道题好像用数组和Arrays会超时

【Java语言实现】
  1. import java.awt.List;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.Collections;
  5. import java.util.Scanner;
  6. // 1:无需package
  7. // 2: 类名必须Main, 不可修改
  8. public class Main {
  9. public static void main(String[] args) {
  10. Scanner scan = new Scanner(System.in);
  11. //在此输入您的代码...
  12. int n=scan.nextInt();
  13. ArrayList<Integer> list=new ArrayList<>();
  14. for(int i=0;i<n;i++) {
  15. list.add(scan.nextInt());
  16. }
  17. Collections.sort(list);
  18. for(int i=0;i<n;i++) {
  19. System.out.print(list.get(i)+" ");
  20. }
  21. System.out.println();
  22. for(int i=n-1;i>=0;i--) {
  23. System.out.print(list.get(i)+" ");
  24. }
  25. }
  26. }

回文判定

【题目描述】

输入描述

输出描述

输入输出样例

示例 1

输入

  1. abcba

输出

  1. Y

示例 2

输入

  1. abcbb

输出

  1. N

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言实现】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. String s=scan.nextLine();
  9. if(new StringBuffer(s).reverse().toString().equals(s)){
  10. System.out.println("Y");
  11. }else{
  12. System.out.println("N");
  13. }
  14. scan.close();
  15. }
  16. }

等差数列

【题目描述】

输入描述

输出描述

输出一个整数表示答案。

输入输出样例

示例

输入

  1. 5 2 6 4 10 20

输出

  1. 10

样例说明: 包含 2、6、4、10、20 的最短的等差数列是 2、4、6、8、10、12、14、16、 18、20。

【分析与解答】

【方法一】

这道题先排序,然后默认两个数字之间最小的是等差数列中的公差

【Java语言数列】
  1. import java.util.Scanner;
  2. //1:无需package
  3. //2: 类名必须Main, 不可修改
  4. import java.util.Arrays;
  5. import java.util.Scanner;
  6. public class Main {
  7. public static void main(String[] args) {
  8. Scanner sc = new Scanner(System.in);
  9. int n = sc.nextInt();
  10. int[] nums = new int[n];
  11. for (int i = 0; i < n; i++) {
  12. nums[i] = sc.nextInt();
  13. }
  14. Arrays.sort(nums);
  15. int min = Integer.MAX_VALUE;
  16. for (int i = 1; i < n; i++) {
  17. if (nums[i] - nums[i - 1] < min) {
  18. min = nums[i] - nums[i - 1];
  19. }
  20. }
  21. try {
  22. int res = (nums[n - 1] - nums[0]) / min + 1;
  23. System.out.println(res);
  24. } catch (Exception e) {
  25. System.out.println(n);
  26. }
  27. sc.close();
  28. }
  29. }

相乘

【题目描述】

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【方法一】

一开始以为要用大整数,结果发现没有超过long的范围,所以用long暴力求解就行

【Java语言数列】
  1. import java.util.Scanner;
  2. //1:无需package
  3. //2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. long num = 0;
  9. for (long i = 1; i <= 1000000007; i++) {
  10. if (i * 2021 % 1000000007 == 999999999) {
  11. num = i;
  12. System.out.println(num);
  13. return;
  14. }
  15. }
  16. scan.close();
  17. }
  18. }

四平方和

【题目描述】

输入描述

输出描述

要求输出 4 个非负整数,按从小到大排序,中间用空格分开

输入输出样例

示例

输入

  1. 12

输出

  1. 0 2 2 2

运行限制

  • 最大运行时间:3s
  • 最大运行内存: 256M

【分析与解答】

【方法一】

暴力求解,四层循环,但是这里有个问题用(int)Math.sqrt(num)不会超时,Math.sqrt(num)会超时

【Java语言数列】
  1. import java.util.Scanner;
  2. //1:无需package
  3. //2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. // 在此输入您的代码...
  8. int num = scan.nextInt();
  9. int temp=(int)Math.sqrt(num);
  10. for (int a = 0; a <= temp; a++) {
  11. for (int b = a; b <= temp; b++) {
  12. for (int c = b; c <= temp; c++) {
  13. for (int d = c; d <= temp; d++) {
  14. if (a * a + b * b + c * c + d * d == num) {
  15. System.out.println(a + " " + b + " " + c + " " + d);
  16. return;
  17. }
  18. }
  19. }
  20. }
  21. }
  22. scan.close();
  23. }
  24. }

网友年龄

【题目描述】

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【方法一】

这道题其实没啥难度,跟着题目的描述一起走就行了

【Java语言数列】
  1. import java.util.Scanner;
  2. //1:无需package
  3. //2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. // 在此输入您的代码...
  8. int count = 0;
  9. for (int friend = 27; friend <= 99; friend++) {
  10. int sun = friend - 27;
  11. int friendchange = Integer.parseInt(new StringBuffer(friend + "").reverse().toString());
  12. if (friendchange == sun) {
  13. count++;
  14. }
  15. }
  16. System.out.println(count);
  17. scan.close();
  18. }
  19. }

煤球数目

【题目描述】

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

有一堆煤球,堆成三角棱锥形。具体: 第一层放 11 个, 第二层 33 个(排列成三角形), 第三层 66 个(排列成三角形), 第四层 1010 个(排列成三角形), .... 如果一共有 100100 层,共有多少个煤球?

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

这道题目的数字是这样

1 3 6 10

1 1+2 3+3 6+4

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int count=0;
  9. int num=0;
  10. int sum=0;
  11. for(int i=0;i<101;i++){
  12. num+=count;
  13. count++;
  14. sum=sum+num;
  15. }
  16. System.out.println(sum);
  17. scan.close();
  18. }
  19. }

三角形描述

【题目描述】

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

如上图所示。图中的所有小方格面积都是 11

那么,图中的三角形面积应该是多少呢?

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

这道题目用正方形减去旁边三个三角形面积即可

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. System.out.println(64-16-12-8);
  9. scan.close();
  10. }
  11. }

第39级台阶

【题目描述】

题目描述

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

小明刚刚看完电影《第 3939 级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是 3939 级!

站在台阶前,他突然又想着一个问题:

如果我每一步只能迈上 11 个或 22 个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完 3939 级台阶,有多少种不同的上法呢?

请你利用计算机的优势,帮助小明寻找答案。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. System.out.println((step(39)+1)/2);
  9. scan.close();
  10. }
  11. public static long step(int num){
  12. if(num==1){
  13. return 1;
  14. }
  15. if(num==2){
  16. return 2;
  17. }
  18. return step(num-1)+step(num-2);
  19. }
  20. }

平方和

【题目描述】

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

小明对数位中含有 2、0、1、92019 的数字很感兴趣,在 11 4040 中这样的数包括 1、2、9、1012910 32、393239 4040,共 2828 个,他们的和是 574574,平方和是 1436214362

注意,平方和是指将每个数分别平方后求和。

请问,在 11 到 20192019 中,所有这样的数的平方和是多少?

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. Long result = 0l;
  9. for (int i = 1; i <= 2019; i++) {
  10. String s = new String("" + i + "");
  11. if (s.contains("0") || s.contains("1") || s.contains("2") || s.contains("9")) {
  12. result += (long)Math.pow(i, 2);
  13. }
  14. }
  15. System.out.println(result);
  16. scan.close();
  17. }
  18. }

错误票据

【题目描述】

输入描述

输出描述

输入输出样例

示例

输入

  1. 2 5 6 8 11 9 10 12 9

输出

  1. 7 9

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 64M
【分析与解答】

首先先把所有的数字都列到一个数组里

然后查找两个数字相同的数字和前后差2的数字

【Java语言数列】
  1. import java.util.Scanner;
  2. import java.util.*;
  3. // 1:无需package
  4. // 2: 类名必须Main, 不可修改
  5. public class Main {
  6. public static void main(String[] args) {
  7. Scanner sc= new Scanner(System.in);
  8. ArrayList<Integer> a=new ArrayList<>();
  9. int n=sc.nextInt();
  10. sc.nextLine();//吸收掉整数后面的换行符
  11. for(int i=0;i<n;i++){
  12. String s=sc.nextLine();
  13. String[] x=s.split(" ");
  14. //将字符串一空格分割成若干个字符串,返回一个字符串数组
  15. for(int j=0;j<x.length;j++){
  16. a.add(Integer.parseInt(x[j]));
  17. }
  18. }
  19. int[] b=new int[a.size()];
  20. for(int i=0;i<a.size();i++){
  21. b[i]=a.get(i);
  22. }
  23. Arrays.sort(b);
  24. int x=0;//相同
  25. int y=0;//空掉
  26. for(int i=1;i<a.size();i++){
  27. if(b[i]-b[i-1]==0){
  28. x=b[i];
  29. }
  30. if(b[i]-b[i-1]==2){
  31. y=b[i]-1;
  32. }
  33. }
  34. System.out.println(y+" "+x);
  35. }
  36. }

第几天

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. import java.util.Calendar;
  3. // 1:无需package
  4. // 2: 类名必须Main, 不可修改
  5. public class Main {
  6. public static void main(String[] args) {
  7. Scanner scan = new Scanner(System.in);
  8. //在此输入您的代码...
  9. Calendar calendar = Calendar.getInstance();
  10. calendar.set(Calendar.YEAR,2000);
  11. calendar.set(Calendar.MONTH,Calendar.MAY);
  12. calendar.set(Calendar.DATE,4);
  13. System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
  14. scan.close();
  15. }
  16. }

猜年龄

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. A:for(int i=1;i<=99;i++)
  8. {
  9. for(int j=1;j<=i+8;j++)
  10. {
  11. if(i*j==(i+j)*6)
  12. {
  13. System.out.println(i);
  14. break A;
  15. }
  16. }
  17. }
  18. scan.close();
  19. }
  20. }

数列求值

【题目描述】

【分析与解答】

20190324 这个数过于庞大 无论是递归还是迭代 程序都无法正常运行

而且int 、 long、BigDecimal等都无法、承载这么大的数 * 题目要求我们只取最后四位

那我们可以对每次运算出来的结果 %10000 这样每次结果就都保留最后四位数字

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. int a = 1,b = 1,c = 1,d = 0;
  7. for(int i = 4;i<=20190324;i++){
  8. d = (a+b+c)%10000;
  9. a = b;
  10. b = c;
  11. c = d;
  12. }
  13. System.out.println(d);
  14. }
  15. }

字符计数

【题目描述】

给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母。

元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。

输入描述

输入格式:

输入一行,包含一个单词,单词中只包含小写英文字母。单词中的字母个数不超过 100。

输出描述

输出两行,第一行包含一个整数,表示元音字母的数量。

第二行包含一个整数,表示辅音字母的数量。

输入输出样例

示例

输入

  1. lanqiao

输出

  1. 4 3

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. String str=scan.next();
  8. int a=0,b=0;
  9. for(int i=0;i<str.length();i++)
  10. {
  11. if(str.charAt(i)=='a'||str.charAt(i)=='e'||str.charAt(i)=='i'||str.charAt(i)=='o'||str.charAt(i)=='u')
  12. {
  13. a++;
  14. }
  15. else
  16. {
  17. b++;
  18. }
  19. }
  20. System.out.println(a);
  21. System.out.println(b);
  22. scan.close();
  23. }
  24. }

猜生日

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. //在此输入您的代码...
  7. int i,j,sum;
  8. for(i=1900;i<2012;i++){
  9. for(j=1;j<30;j++){
  10. sum=i*10000+600+j;
  11. if(sum%2012==0 && sum%3==0 && sum%12==0){
  12. System.out.println(sum);
  13. }
  14. }
  15. }
  16. }
  17. }

取位数

【题目描述】

  1. import java.util.*;
  2. public class Main
  3. {
  4. static int len(int x){
  5. if(x<10) return 1;
  6. return len(x/10)+1;
  7. }
  8. // 取x的第k位数字
  9. static int f(int x, int k){
  10. if(len(x)-k==0) return x%10;
  11. return ______________________; //填空
  12. }
  13. public static void main(String[] args)
  14. {
  15. int x = 23513;
  16. //System.out.println(len(x));
  17. System.out.println(f(x,3));
  18. System.out.println(f(893275,2));
  19. }
  20. }
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. import java.util.*;
  5. public class Main
  6. {
  7. static int len(int x){
  8. if(x<10) return 1;
  9. return len(x/10)+1;
  10. }
  11. // 取x的第k位数字
  12. static int f(int x, int k){
  13. if(len(x)-k==0) return x%10;
  14. return (int)(x/Math.pow(10,len(x)-k))%10; //填空
  15. }
  16. public static void main(String[] args)
  17. {
  18. int x = 23513;
  19. //System.out.println(len(x));
  20. System.out.println(f(x,3));
  21. System.out.println(f(893275,2));
  22. }
  23. }

猴子分香蕉

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. for(int i = 1;;i++){
  7. int b = i;
  8. if(b % 5 == 1){
  9. b = (b-1)/5*4;
  10. if(b % 5 ==2){
  11. b = (b-2)/5*4;
  12. if(b % 5 == 3){
  13. b = (b-3)/5*4;
  14. if(b % 5 == 4){
  15. b = (b-4)/5*4;
  16. if(b % 5 == 0 && b >= 5){//最少也有五个香蕉
  17. System.out.println(i);
  18. break;
  19. }
  20. }
  21. }
  22. }
  23. }
  24. }
  25. }
  26. }

求和

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int sum=0;
  9. for(int i=1;i<=2019;i++){
  10. if((i+"").contains("2")||(i+"").contains("0")||(i+"").contains("1")||(i+"").contains("9")){
  11. sum=sum+i;
  12. }
  13. }
  14. System.out.println(sum);
  15. scan.close();
  16. }
  17. }

找素数

【题目描述】

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int count=0;
  9. for(int i=2;;i++){
  10. if(judge(i)){
  11. count++;
  12. }
  13. if(count==100002){
  14. System.out.println(i);
  15. break;
  16. }
  17. }
  18. scan.close();
  19. }
  20. public static boolean judge(int n){
  21. for(int i=2;i<=(int)Math.sqrt(n);i++){
  22. if(n%i==0){
  23. return false;
  24. }
  25. }
  26. return true;
  27. }
  28. }

第几个幸运数字

【题目描述】

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

这道题用除法来做的话会超时,所以需要用逆向思维Math.pow方法减少运算次数

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. int count = 0;
  7. Long l = 59084709587505L;
  8. for (long i = 0; Math.pow(3, i) <= l; i++) {
  9. for (int j = 0; Math.pow(5, j) <= l; j++) {
  10. for (int j2 = 0; Math.pow(5, j2) <= l; j2++) {
  11. if (Math.pow(3, i)*Math.pow(5, j)*Math.pow(7, j2) <= l) {
  12. count++;
  13. }
  14. }
  15. }
  16. }
  17. //第一次全0是没有意义的,要减去
  18. System.out.println(count-1);
  19. }
  20. }

次数差

【题目描述】

x 星球有 26 只球队,分别用 a ~ z 的 26 个字母代表。他们总是不停地比赛。

在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。

国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了)

输入描述

输入,一个串,表示球队获胜情况(保证串的长度 < 1000)。

输出描述

要求输出一个数字,表示出现次数最多的字母比出现次数最少的字母多了多少次。

输入输出样例

示例

输入

  1. abaabcaa

输出

  1. 4

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. import java.util.*;
  3. // 1:无需package
  4. // 2: 类名必须Main, 不可修改
  5. public class Main {
  6. public static void main(String[] args) {
  7. Scanner scan = new Scanner(System.in);
  8. //在此输入您的代码...
  9. String s=scan.next();
  10. int arr[]=new int[26];
  11. for (int i = 0; i <s.length(); i++) {
  12. arr[s.charAt(i)-'a']++;
  13. }
  14. int min = arr[0],max = 0;
  15. for (int i = 0; i < arr.length; i++) {
  16. if (arr[i]!=0) {
  17. min = Math.min(arr[i], min);
  18. max = Math.max(arr[i], max);
  19. }
  20. }
  21. System.out.println(max-min);
  22. scan.close();
  23. }
  24. }

回家路费

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int day=0;
  9. int sum=0;
  10. int coin=1;;
  11. while(sum<108){
  12. sum+=coin;
  13. day++;
  14. coin+=2;
  15. }
  16. System.out.println(day);
  17. scan.close();
  18. }
  19. }

乌托邦树

【题目描述】

题目描述

实现一个算法得到乌托邦树的高度。介绍如下:

乌托邦树每年经历 2 个生长周期。每年春天,它的高度都会翻倍。每年夏天,它的高度都会增加 1 米。

对于一颗在春天开始时种下的高 1 米的树,问经过指定周期后,树的高度为多少。

输入描述

输出描述

输出一个数字,为经过指定周期后树的高度。

输入输出样例

示例

输入

  1. 3

输出

  1. 6

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int num=scan.nextInt();
  9. long start=1;
  10. for(int i=0;i<num;i++){
  11. if(i%2==0){
  12. start=start*2;
  13. }else{
  14. start++;
  15. }
  16. }
  17. System.out.println(start);
  18. scan.close();
  19. }
  20. }

大写

【题目描述】

给定一个只包含大写字母和小写字母的字符串,请将其中所有的小写字母转换成大写字母后将字符串输出。

输入描述

输入一行包含一个字符串。

输出描述

输出转换成大写后的字符串。

输入输出样例

示例

输入

  1. LanQiao

输出

  1. LANQIAO

评测用例规模与约定

对于所有评测用例,字符串的长度不超过 100。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. System.out.println(scan.nextLine().toUpperCase());
  9. scan.close();
  10. }
  11. }

高精度加法

【题目描述】

题目描述

给定两个整数 a和 b,请你求出这两个整数的和。

输入描述

输入两个正整数 a,b,a和 b都不超过 100位。

输出描述

输出 a+b。

输入输出样例

示例

输入

  1. 1234567890123456789
  2. 9876543210987654321

输出

  1. 11111111101111111110

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. import java.math.BigInteger;
  3. // 1:无需package
  4. // 2: 类名必须Main, 不可修改
  5. public class Main {
  6. public static void main(String[] args) {
  7. Scanner scan = new Scanner(System.in);
  8. //在此输入您的代码...
  9. String a = scan.nextLine();
  10. String b = scan.nextLine();
  11. BigInteger anum=new BigInteger(a);
  12. BigInteger bnum=new BigInteger(b);
  13. System.out.println(anum.add(bnum));
  14. scan.close();
  15. }
  16. }

天数

【题目描述】

题目描述

输入一个月份,请输出 2021 年这个月有多少天。

输入描述

输入一行包含一个整数,表示月份。

输出描述

输出一个整数,这个月的天数。

输入输出样例

示例 1

输入

  1. 8

输出

  1. 31

示例 2

输入

  1. 2

输出

  1. 28

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int num=scan.nextInt();
  9. int[]res={31,28,31,30,31,30,31,31,30,31,30,31};
  10. System.out.println(res[num-1]);
  11. scan.close();
  12. }
  13. }

阶乘计算

【题目描述】

题目描述

给定一个正整数 n,求出 n!的值。

输入描述

输入一个正整数 n,n<=1000

输出描述

输出 n! 。

输入输出样例

示例

输入

  1. 10

输出

  1. 3628800

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. import java.math.*;
  3. // 1:无需package
  4. // 2: 类名必须Main, 不可修改
  5. public class Main {
  6. public static void main(String[] args) {
  7. Scanner scan = new Scanner(System.in);
  8. //在此输入您的代码...
  9. int num=scan.nextInt();
  10. if(num==0){
  11. System.out.println(1);
  12. return;
  13. }
  14. BigInteger sum=BigInteger.ONE;
  15. for(int i=1;i<=num;i++){
  16. sum=sum.multiply(new BigInteger(i+""));
  17. }
  18. System.out.println(sum);
  19. scan.close();
  20. }
  21. }

ASC

【题目描述】

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

已知大写字母 A 的 ASCII 码为 65,请问大写字母 L 的 ASCII 码是多少?

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. System.out.println((int)('L'));
  9. scan.close();
  10. }
  11. }

距离和

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int sum=0;
  9. String a="LANQIAO";
  10. for(int i=0;i<a.length();i++){
  11. for(int j=i+1;j<a.length();j++){
  12. sum=sum+Math.abs(((int)(a.charAt(j)))-((int)(a.charAt(i))));
  13. }
  14. }
  15. System.out.println(sum);
  16. scan.close();
  17. }
  18. }

数的分解

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. import java.util.Scanner;
  5. //1:无需package
  6. //2: 类名必须Main, 不可修改
  7. public class Main {
  8. public static void main(String[] args) {
  9. Scanner scan = new Scanner(System.in);
  10. // 在此输入您的代码...
  11. int num = 2019;
  12. int result = 0;
  13. for (int i = 1; i < num; i++) {
  14. for (int j = i + 1; j < num; j++) {
  15. int k =num-i-j;
  16. String si = i + "";
  17. String sj = j + "";
  18. String sk = k + "";
  19. boolean a = !si.contains("2") && !si.contains("4");
  20. boolean b = !sj.contains("2") && !sj.contains("4");
  21. boolean c = !sk.contains("2") && !sk.contains("4");
  22. if (k>i&&k>j&& a && b && c) {
  23. result++;
  24. }
  25. }
  26. }
  27. System.out.println(result);
  28. scan.close();
  29. }
  30. }

三角形面积

【题目描述】

输入输出样例

示例 1

输入

  1. 5 6

输出

  1. 15

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. //1:无需package
  3. //2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int l = scan.nextInt();
  9. int h = scan.nextInt();
  10. int tem = l * h;
  11. if( (tem & 1) == 0){
  12. System.out.println(tem/2);
  13. }else{
  14. System.out.println(String.format("%.1f",tem/2.0));
  15. }
  16. scan.close();
  17. }
  18. }

有奖猜谜

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. //1:无需package
  3. //2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. int sum=777;
  8. //在此输入您的代码...
  9. String res="vxvxvxvxvxvxvvx";
  10. for(int i =0;i<res.length();i++) {
  11. char temp= res.charAt(i);
  12. if(temp=='v') {
  13. sum=sum*2;
  14. }else {
  15. sum=sum-555;
  16. }
  17. }
  18. System.out.println(sum);
  19. scan.close();
  20. }
  21. }

生日蜡烛

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. int sum = 0;
  7. for (int i = 3; i < 100; i++) {
  8. for (int j = i; j < 100; j++) {
  9. sum +=j;
  10. if(sum == 236) {
  11. System.out.println(i);
  12. }
  13. }
  14. //置0,让sum重新累加,防止sum的数据错误。
  15. sum = 0;
  16. }
  17. }
  18. }

猜年龄

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. for(int i=10;i<=99;i++){
  9. if(i*i*i>=1000&&i*i*i*i>=100000){
  10. String res=i*i*i+""+i*i*i*i;
  11. if(res.length()==10&&res.contains("0")&&res.contains("1")&&res.contains("2")&&res.contains("3")&&res.contains("4")&&res.contains("5")&&res.contains("6")&&res.contains("7")&&res.contains("8")&&res.contains("9")){
  12. System.out.println(i);
  13. }
  14. }
  15. }
  16. scan.close();
  17. }
  18. }

猜灯谜

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. //1:无需package
  3. //2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. // 在此输入您的代码...
  8. for (int qing = 1; qing <= 9; qing++) {
  9. for (int cai = 0; cai <= 9; cai++) {
  10. for (int mi = 0; mi <= 9; mi++) {
  11. for (int bian = 0; bian <= 9; bian++) {
  12. for (int shang = 0; shang <= 9; shang++) {
  13. for (int deng = 0; deng <= 9; deng++) {
  14. if((qing*100+cai*10+mi)*(qing*100+cai*10+mi)==100000*qing+10000*bian+shang*1000+deng*100+bian*10+cai) {
  15. System.out.println(qing+""+cai+""+mi);
  16. }
  17. }
  18. }
  19. }
  20. }
  21. }
  22. }
  23. scan.close();
  24. }
  25. }

生成回文数

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.math.BigInteger;
  2. import java.util.Scanner;
  3. //1:无需package
  4. //2: 类名必须Main, 不可修改
  5. public class Main {
  6. public static void main(String[] args) {
  7. Scanner scan = new Scanner(System.in);
  8. //在此输入您的代码...
  9. int num=0;
  10. for(int i=0;i<=200;i++){
  11. String sum=i+"";
  12. while(!judge(sum)){
  13. sum=rever(sum).toString();
  14. num++;
  15. if(num>1000){
  16. System.out.println(i);
  17. break;
  18. }
  19. }
  20. num=0;
  21. }
  22. scan.close();
  23. }
  24. public static BigInteger rever(String num1){
  25. StringBuffer temp=new StringBuffer(num1);
  26. String num2=temp.reverse().toString();
  27. BigInteger res=new BigInteger(num1).add(new BigInteger(num2));
  28. return res;
  29. }
  30. public static boolean judge(String num){
  31. StringBuffer num1=new StringBuffer(num);
  32. String num2=num1.reverse().toString();
  33. return num2.equals(num);
  34. }
  35. }

排列字母

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Arrays;
  2. import java.util.Scanner;
  3. //1:无需package
  4. //2: 类名必须Main, 不可修改
  5. public class Main {
  6. public static void main(String[] args) {
  7. Scanner scan = new Scanner(System.in);
  8. //在此输入您的代码...
  9. char temp[]=scan.nextLine().toCharArray();
  10. Arrays.sort(temp);
  11. String res="";
  12. for(int i=0;i<temp.length;i++) {
  13. res+=temp[i];
  14. }
  15. System.out.println(res);
  16. scan.close();
  17. }
  18. }

星期计算

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.math.BigInteger;
  2. import java.util.Arrays;
  3. import java.util.Scanner;
  4. //1:无需package
  5. //2: 类名必须Main, 不可修改
  6. public class Main {
  7. public static void main(String[] args) {
  8. Scanner scan = new Scanner(System.in);
  9. //在此输入您的代码...
  10. BigInteger a=new BigInteger("20").pow(22).mod(new BigInteger("7"));
  11. System.out.println(Integer.parseInt(a.toString())+6);
  12. scan.close();
  13. }
  14. }

纸张尺寸

【题目描述】

问题描述

在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm \times× 841mm, 将 A0 纸 沿长边对折后为 A1 纸, 大小为 841mm \times× 594mm, 在对折的过程中长度直接取 下整 (实际裁剪时可能有损耗)。将 A1 纸沿长边对折后为 A2 纸, 依此类推。

输入纸张的名称, 请输出纸张的大小。

输入格式

输入一行包含一个字符串表示纸张的名称, 该名称一定是 A0、A1、A2、 A3、A4、A5、A6、A7、A8、A9 之一。

输出格式

输出两行,每行包含一个整数,依次表示长边和短边的长度。

样例输入1

  1. A0

样例输出1

  1. 1189 841

样例输入 2

  1. A1

样例输出 2

  1. 841 594

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 512M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. String a = scan.next();
  8. char b = a.charAt(1);
  9. int c = Integer.parseInt(String.valueOf(b));
  10. int left = 1189;
  11. int right = 841;
  12. for (int i = 1; i <= c; i++) {
  13. if(left >= right){
  14. if(left %2 ==0){
  15. left = left / 2;
  16. }else{
  17. left = (left-1) /2;
  18. }
  19. }else{
  20. if(right %2 ==0){
  21. right = right / 2;
  22. }else{
  23. right = (right-1) /2;
  24. }
  25. }
  26. }
  27. if(left > right){
  28. System.out.println(left);
  29. System.out.println(right);
  30. }else{
  31. System.out.println(right);
  32. System.out.println(left);
  33. }
  34. }
  35. }

平行四边形

【题目描述】

题目描述

给定一个平行四边形的底边长度 l和高度 h,求平行四边形的面积。

输入描述

输出描述

输出一个数,表示平行四边形的面积。如果面积为整数,请直接输出这个整数,不带小数点。如果面积不是整数,请四舍五入保留正好一位小数。

输入输出样例

示例 1

输入

  1. 5 6

输出

  1. 30

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. String a = scan.next();
  8. char b = a.charAt(1);
  9. int c = Integer.parseInt(String.valueOf(b));
  10. int left = 1189;
  11. int right = 841;
  12. for (int i = 1; i <= c; i++) {
  13. if(left >= right){
  14. if(left %2 ==0){
  15. left = left / 2;
  16. }else{
  17. left = (left-1) /2;
  18. }
  19. }else{
  20. if(right %2 ==0){
  21. right = right / 2;
  22. }else{
  23. right = (right-1) /2;
  24. }
  25. }
  26. }
  27. if(left > right){
  28. System.out.println(left);
  29. System.out.println(right);
  30. }else{
  31. System.out.println(right);
  32. System.out.println(left);
  33. }
  34. }
  35. }

倍数

【题目描述】

题目描述

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

请问在 1 到 2020 中,有多少个数既是 4的整数倍,又是 6 的整数倍。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int num=0;
  9. for(int i=1;i<=2020;i++){
  10. if(i%4==0&&i%6==0){
  11. num++;
  12. }
  13. }
  14. System.out.println(num);
  15. scan.close();
  16. }
  17. }

纯质数

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. import java.util.*;
  3. // 1:无需package
  4. // 2: 类名必须Main, 不可修改
  5. public class Main {
  6. //题目的意思 每个数都是2,3,5,7
  7. public static boolean isPrimeNumber(int n){
  8. //判断是否为质数
  9. if(n==1||n==0) return false;
  10. for(int i=2;i<=Math.sqrt(n);i++){
  11. if(n%i==0) return false;
  12. }
  13. return true;
  14. }
  15. public static void main(String[] args) {
  16. int sum=0;
  17. for(int i=1;i<=20210605;i++){
  18. int j=i;
  19. while(j!=0){//筛选条件 取出每位上的数看是否为质数
  20. if(isPrimeNumber(j%10)==false)
  21. break;
  22. j=j/10;
  23. }//判断是否为质数 j==0 是防止break中跳出的数
  24. if(j==0&&isPrimeNumber(i))
  25. sum++;
  26. }
  27. System.out.println(sum);
  28. }
  29. }

数字位数

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. String sum="";
  9. for(int i=1;i<=2020;i++){
  10. sum+=i;
  11. }
  12. System.out.println(sum.length());
  13. scan.close();
  14. }
  15. }

合法日期

【题目描述】

题目描述

小蓝正在上小学,老师要求同学们在暑假每天记日记。可是小蓝整个暑假都在玩,直到最后一天才想起要记日记。于是小蓝赶紧编了一些日记交给老师。

没想到,日记很快就被老师发现了问题,原来小蓝记完 8 月 31 日的日记,竟又记了 8 月 32 日和 8 月 33 日的日记。这显然是有问题的,因为根本没有 8 月 32 日和 8 月 33 日。

给定一个月份和一个日期,请问 2021 年有没有这一天。

输入描述

输出描述

如果2021年有 m 月 d日,输入 yes,否则输出 no

输入输出样例

示例 1

输入

  1. 8 32

输出

  1. no

示例 2

输入

  1. 2 28

输出

  1. yes

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. public class Main {
  3. public static void main(String[] args) {
  4. Scanner sc=new Scanner(System.in);
  5. int m=sc.nextInt();
  6. int d=sc.nextInt();
  7. String ans="yes";
  8. if(m>12 || d>31) {
  9. ans="no";
  10. }else if(m==2 && d>28) {
  11. ans="no";
  12. }else if((m==4 ||m==6||m==9||m==11) && d>30) {
  13. ans="no";
  14. }
  15. System.out.println(ans);
  16. }
  17. }

合数个数

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int num=0;
  9. for(int i=4;i<=2020;i++){
  10. for(int j=2;j<i;j++){
  11. if(i%j==0){
  12. num++;
  13. break;
  14. }
  15. }
  16. }
  17. System.out.println(num);
  18. scan.close();
  19. }
  20. }

数字9

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. //1:无需package
  3. //2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int count=0;
  9. for (int i = 1; i <= 2019; i++) {
  10. if ((i+"").contains("9")){
  11. count++;
  12. }
  13. }
  14. System.out.println(count);
  15. scan.close();
  16. }
  17. }

居中输出

【题目描述】

题目描述

输入一个整数,请在整数前后补上等号,使得总的长度为 10,而且整数在正中间。

输入描述

输入一行包含一个整数 n

输出描述

输出补上等号后的表示。如果没办法使整数在正中间,在前面多补一个等号。

输入输出样例

示例

输入

  1. 2021

输出

  1. ===2021===

示例2

输入

  1. 2021101

输出

  1. ==2021101=

评测用例规模与约定

对于所有评测用例,给定的数是不超过 8 位的非负整数。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int num=scan.nextInt();
  9. String temp=num+"";
  10. while(temp.length()<=8){
  11. temp="="+temp;
  12. temp=temp+"=";
  13. }
  14. if(temp.length()==9){
  15. temp="="+temp;
  16. }
  17. System.out.println(temp);
  18. scan.close();
  19. }
  20. }

约数

【题目描述】

题目描述

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int num=0;
  9. for(int i=1;i<=2020;i++){
  10. if(2020%i==0){
  11. num++;
  12. }
  13. }
  14. System.out.println(num);
  15. scan.close();
  16. }
  17. }

公约数

【题目描述】

题目描述

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int num=0;
  9. for(int i=1;i<=2020;i++){
  10. if(2020%i==0&&3030%i==0){
  11. num++;
  12. }
  13. }
  14. System.out.println(num);
  15. scan.close();
  16. }
  17. }

约数个数

【题目描述】

题目描述

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int num=0;
  9. for(int i=1;i<=1200000;i++){
  10. if(1200000%i==0){
  11. num++;
  12. }
  13. }
  14. System.out.println(num);
  15. scan.close();
  16. }
  17. }

含2天数

【题目描述】

题目描述

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.text.SimpleDateFormat;
  2. import java.util.Calendar;
  3. import java.util.Date;
  4. import java.util.Scanner;
  5. //1:无需package
  6. //2: 类名必须Main, 不可修改
  7. public class Main {
  8. public static void main(String[] args) {
  9. Scanner scan = new Scanner(System.in);
  10. //在此输入您的代码...
  11. int num=0;
  12. Calendar cale = Calendar.getInstance();
  13. cale.set(1900, 0, 1);
  14. Date now=cale.getTime();
  15. SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyyMMdd");
  16. String transformDate=simpleDateFormat.format(now);
  17. while(!transformDate.equals("99991231")){
  18. now=cale.getTime();
  19. simpleDateFormat=new SimpleDateFormat("yyyyMMdd");
  20. transformDate=simpleDateFormat.format(now);
  21. if(transformDate.contains("2")) {
  22. num++;
  23. }
  24. cale.add(5, 1);
  25. }
  26. System.out.println(num);
  27. scan.close();
  28. }
  29. }

年龄问题

【题目描述】

题目描述

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. for(int i=0;i<=99;i++){
  9. int wife=i;
  10. int husband=(int)(1.5*wife);
  11. if((husband-20)==2*(wife-20)&&(1.5*wife)==(int)(1.5*wife)){
  12. System.out.println(wife);
  13. }
  14. }
  15. scan.close();
  16. }
  17. }

反倍数

【题目描述】

示例

输入

  1. 30 2 3 6

输出

  1. 10

样例说明:

以下这些数满足要求:1, 5, 7, 11, 13, 17, 19, 23, 25, 29。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int num=scan.nextInt();
  9. int a=scan.nextInt();
  10. int b=scan.nextInt();
  11. int c=scan.nextInt();
  12. int sum=0;
  13. for(int i=1;i<=num;i++){
  14. if(i%a!=0&&i%b!=0&&i%c!=0){
  15. sum++;
  16. }
  17. }
  18. System.out.println(sum);
  19. scan.close();
  20. }
  21. }

星期一

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.text.SimpleDateFormat;
  2. import java.util.Calendar;
  3. import java.util.Date;
  4. import java.util.Scanner;
  5. //1:无需package
  6. //2: 类名必须Main, 不可修改
  7. public class Main {
  8. public static void main(String[] args) {
  9. Scanner scan = new Scanner(System.in);
  10. //在此输入您的代码...
  11. int num=0;
  12. Calendar cale = Calendar.getInstance();
  13. cale.set(1901, 0, 1);
  14. Date now=cale.getTime();
  15. Calendar cale1 = Calendar.getInstance();
  16. cale1.set(2000, 11, 31);
  17. Date now1=cale1.getTime();
  18. long difference = (now1.getTime()-now.getTime())/86400000;
  19. System.out.println(difference/7);
  20. scan.close();
  21. }
  22. }

星期几

【题目描述】

【分析与解答】

【Java语言数列】
  1. import java.text.SimpleDateFormat;
  2. import java.util.Calendar;
  3. import java.util.Date;
  4. import java.util.Scanner;
  5. //1:无需package
  6. //2: 类名必须Main, 不可修改
  7. public class Main {
  8. public static void main(String[] args) {
  9. Scanner scan = new Scanner(System.in);
  10. // 在此输入您的代码...
  11. int num = 0;
  12. Calendar cale = Calendar.getInstance();
  13. for (int i = 1949; i <= 2012; i++) {
  14. cale.set(i, 9, 1);
  15. if (cale.get(Calendar.DAY_OF_WEEK) == 1) {
  16. num++;
  17. }
  18. }
  19. System.out.println(num);
  20. scan.close();
  21. }
  22. }

立方变自身

【题目描述】

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

观察下面的现象,某个数字的立方,按位累加仍然等于自身。

  1. 1^3 = 1 8^3 = 512 5+1+2=8 17^3 = 4913 4+9+1+3=17 ...

请你计算包括 1,8,171,8,17 在内,符合这个性质的正整数一共有多少个?

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
【分析与解答】

【Java语言数列】
  1. import java.util.Scanner;
  2. // 1:无需package
  3. // 2: 类名必须Main, 不可修改
  4. public class Main {
  5. public static void main(String[] args) {
  6. Scanner scan = new Scanner(System.in);
  7. //在此输入您的代码...
  8. int num=0;
  9. for(int i=1;i<=999999;i++) {
  10. if(i==add(i*i*i+"")) {
  11. num++;
  12. }
  13. }
  14. System.out.println(num);
  15. scan.close();
  16. }
  17. public static int add(String num){
  18. char temp[]=num.toCharArray();
  19. int sum=0;
  20. for(int i=0;i<temp.length;i++) {
  21. sum=sum+temp[i]-'0';
  22. }
  23. return sum;
  24. }
  25. }

时间显示

【题目描述】

题目描述

输入描述

输入一行包含一个整数,表示时间。

输出描述

输入输出样例

示例 1

输入

  1. 46800999

输出

  1. 13:00:00

示例 2

输入

  1. 1618708103123

输出

  1. 01:08:23

评测用例规模与约定

对于所有评测用例,给定的时间为不超过 10^{18}1018 的正整数。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 512M
【分析与解答】

【Java语言数列】
  1. import java.security.Timestamp;
  2. import java.text.SimpleDateFormat;
  3. import java.util.Date;
  4. import java.util.Scanner;
  5. // 1:无需package
  6. // 2: 类名必须Main, 不可修改
  7. public class Main {
  8. public static void main(String[] args) {
  9. Scanner scan = new Scanner(System.in);
  10. //在此输入您的代码...
  11. SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
  12. String time1 = sdf.format(new Date(scan.nextLong()));
  13. System.out.println(time1);
  14. scan.close();
  15. }
  16. }

原文链接:https://www.cnblogs.com/yyyyfly1/p/16930912.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号