3

【笔试实战】蓝桥官网在线刷题100题计划【第一轮】 - 天佑1

 1 year ago
source link: https://www.cnblogs.com/yyyyfly1/p/16930912.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【题目描述】

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

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

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

【分析与解答】

【Java语言实现】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int a = scan.nextInt();
        int b = scan.nextInt();
        System.out.println(a+b);
        scan.close();
    }
}

MP3储存

【题目描述】

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

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

【分析与解答】

【Java语言实现】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        System.out.println(25600);
        scan.close();
    }
}

【题目描述】

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

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

输入描述

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

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

输出描述

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

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

输入输出样例

示例 1

输入

lanqiao

输出

a 2

示例 2

输入

longlonglongistoolong

输出

o 6

运行限制

最大运行时间:1s

最大运行内存: 256M

【分析与解答】

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

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

然后在作出比较就可以了

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

【Java语言实现】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        String temp=scan.nextLine();
        int a[]=new int[26];
        for(int i=0;i<temp.length();i++){
            a[temp.charAt(i)-'a']++;
        }
        int max=0;
        char ch='a';
        for(int i=0;i<a.length;i++){
            if(a[i]>max){
                max=a[i];
                ch=(char)('a'+i);
            }
        }
        System.out.println(ch);
        System.out.println(max);
        scan.close();
    }
}

【题目描述】

小蓝给学生们组织了一场考试,卷面总分为 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语言实现】

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[]=new int[2];
        for(int i=0;i<n;i++){
            int temp=scan.nextInt();
            if(temp>=85){
                a[0]++;
            }else if(temp>=60){
                a[1]++;
            }
        }
        System.out.println(Math.round((double)(a[1]+a[0])*100/n)+"%");
        System.out.println(Math.round((double)a[0]*100/n)+"%");
        scan.close();
    }
}

【题目描述】

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

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

1871173-20221127223527778-2099693350.png

则从AASS的最短距离是多少?

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

【Java语言实现】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        System.out.println(6);
        scan.close();
    }
}

【题目描述】

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

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

这条街一共有 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语言实现】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int count=0;
        String aString="";
        for (int i = 1; i <=2020; i++) {
            aString=i+"";
            for (int j = 0; j < aString.length(); j++) {
          if(aString.charAt(j)=='2') {
            count++;
            }
          }
        }
        System.out.println(count);
        scan.close();
    }
}

【题目描述】

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

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

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

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

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

取款机只能提供 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解决就可以了

1871173-20221127223527757-1414756653.png

【Java语言实现】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        System.out.println(5200);
        scan.close();
    }
}

【题目描述】

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

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

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

【Java语言实现】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int a=256*8*1024*1024/32;
        //在此输入您的代码...
        System.out.println(Math.abs(a));
        scan.close();
    }
}

【题目描述】

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

小蓝每天都锻炼身体。

正常情况下,小蓝每天跑 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语言实现】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        System.out.println(8879);
        scan.close();
    }
}

【题目描述】

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

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

1 2 6 7 15 ...

3 5 8 14 ...

4 9 13 ...

10 12 ...

11 ...

...

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

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

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

1871173-20221127223527620-435430322.png

【Java语言实现】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        System.out.println(761);
        scan.close();
    }
}

棋盘放麦子

【题目描述】

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

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

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

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

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

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

【Java语言实现】

import java.util.Scanner;
import java.math.BigInteger;

// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        BigInteger a =new BigInteger("0");
        BigInteger b = new BigInteger("2");
        for (int i = 0; i < 64; i++) {
            a = a.add(b.pow(i));
        }
        System.out.println(a);
        scan.close();
    }
}

特别数的和

【题目描述】

小明对数位中含有 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语言实现】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        System.out.println(getContains(scan.nextInt()));
        scan.close();
    }

    public static int getContains(int num) {
        int total = 0;
        if(num>=1 && num<=10000) {
            for(int i=0;i<=num;i++) {
                if((i+"").indexOf("0")!=-1 || (i+"").indexOf("1")!=-1 || (i+"").indexOf("2")!=-1 || (i+"").indexOf("9")!=-1) {
                    total += i;
                }
            }
        }
        return total;
    }
}

【题目描述】

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

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

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

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

【Java语言实现】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int count=0;
        for(int i=2;i<Integer.MAX_VALUE;i++){
          if(judge(i)){
            count++;
          }
          if(count==2019){
            System.out.println(i);
            break;
          }
        }
        scan.close();
    }
    public static boolean judge(int a){
      for(int i=2;i<=Math.sqrt(a);i++){
        if(a%i==0){
          return false;
        }
      }
      return true;
    }
}

【题目描述】

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

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

X是 2019的整倍数;

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

运行限制

最大运行时间:1s

最大运行内存: 128M

【分析与解答】

【Java语言实现】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        for(long i= 2019;i<Long.MAX_VALUE;i=i+2019){
          if(judge(i)){
            System.out.println(i);
            break;
          }
        }
        scan.close();
    }
    public static boolean judge(long a){
      String res=a+"";
      for(int i=0;i<res.length();i++){
        if((res.charAt(i)-'0')%2==0){
          return false;
        }
      }
      return true;
    }
}

【题目描述】

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

1871173-20221127223527703-756679437.png

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

输入输出样例

输入

5 1 3 2 6 5

输出

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

【分析与解答】

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

【Java语言实现】

import java.awt.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
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();
        ArrayList<Integer> list=new ArrayList<>();
        for(int i=0;i<n;i++) {
            list.add(scan.nextInt());
        }
        
        Collections.sort(list);
        for(int i=0;i<n;i++) {
            System.out.print(list.get(i)+" ");
        }
        System.out.println();
        for(int i=n-1;i>=0;i--) {
            System.out.print(list.get(i)+" ");
        }
    }
}

【题目描述】

1871173-20221127223527734-1035855381.png

1871173-20221127223527662-1433156271.png

1871173-20221127223527692-807533230.png

输入输出样例

输入

abcba

输出

Y

输入

abcbb

输出

N
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言实现】

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.nextLine();
        if(new StringBuffer(s).reverse().toString().equals(s)){
          System.out.println("Y");
        }else{
          System.out.println("N");
        }
        scan.close();
    }
}

【题目描述】

1871173-20221127223527622-1726380586.png
1871173-20221127223527806-123859633.png

输出一个整数表示答案。

输入输出样例

输入

5 2 6 4 10 20

输出

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

【分析与解答】

【方法一】

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

【Java语言数列】

import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] nums = new int[n];
		for (int i = 0; i < n; i++) {
			nums[i] = sc.nextInt();
		}
		Arrays.sort(nums);
		int min = Integer.MAX_VALUE;
		for (int i = 1; i < n; i++) {
			if (nums[i] - nums[i - 1] < min) {
				min = nums[i] - nums[i - 1];
			}
		}
		try {
			int res = (nums[n - 1] - nums[0]) / min + 1;
			System.out.println(res);
		} catch (Exception e) {
			System.out.println(n);
		}
		sc.close();
	}
}

【题目描述】

1871173-20221127223527734-2049111372.png
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【方法一】

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

【Java语言数列】

import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
 public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     //在此输入您的代码...
     long num = 0;
     for (long i = 1; i <= 1000000007; i++) {
         if (i * 2021 % 1000000007 == 999999999) {
             num = i;
             System.out.println(num);
             return;
         }
     }
     scan.close();
 }
}

【题目描述】

1871173-20221127223527637-458045095.png

1871173-20221127223527772-1641529388.png

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

输入输出样例

输入

输出

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

【分析与解答】

【方法一】

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

【Java语言数列】

import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		// 在此输入您的代码...
		int num = scan.nextInt();
		int temp=(int)Math.sqrt(num);
		for (int a = 0; a <= temp; a++) {
			for (int b = a; b <= temp; b++) {
				for (int c = b; c <= temp; c++) {
					for (int d = c; d <= temp; d++) {
						if (a * a + b * b + c * c + d * d == num) {
							System.out.println(a + " " + b + " " + c + " " + d);
							return;
						}
					}
				}
			}
		}
		scan.close();
	}
}

【题目描述】

1871173-20221127223527771-1032825616.png
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【方法一】

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

【Java语言数列】

import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		// 在此输入您的代码...
		int count = 0;
		for (int friend = 27; friend <= 99; friend++) {
			int sun = friend - 27;
			int friendchange = Integer.parseInt(new StringBuffer(friend + "").reverse().toString());
			if (friendchange == sun) {
				count++;
			}
		}
		System.out.println(count);

		scan.close();
	}

}

【题目描述】

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

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

  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

这道题目的数字是这样

1 3 6 10

1 1+2 3+3 6+4

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int count=0;
        int num=0;
        int sum=0;
        for(int i=0;i<101;i++){
            num+=count;
            count++;
            sum=sum+num;
        }
        System.out.println(sum);
        scan.close();
    }
}

三角形描述

【题目描述】

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

1871173-20221127223527694-685483421.jpg

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

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

  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

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

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        System.out.println(64-16-12-8);
        scan.close();
    }
}

第39级台阶

【题目描述】

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

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

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

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

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

  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        System.out.println((step(39)+1)/2);
        scan.close();
    }

    public static long step(int num){
      if(num==1){
        return 1;
      }
      if(num==2){
        return 2;
      }
      return step(num-1)+step(num-2);
    }
}

【题目描述】

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

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

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

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

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        Long result = 0l;
        for (int i = 1; i <= 2019; i++) {
            String s = new String("" + i + "");
            if (s.contains("0") || s.contains("1") || s.contains("2") || s.contains("9")) {
                result += (long)Math.pow(i, 2);
            }
        }
        System.out.println(result);
        scan.close();
    }
}

【题目描述】

1871173-20221127223527743-152502569.png
1871173-20221127223527807-778404964.png

1871173-20221127223527693-1133481187.png

输入输出样例

输入

2 5 6 8 11 9 10 12 9

输出

7 9
  • 最大运行时间:1s
  • 最大运行内存: 64M

【分析与解答】

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

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

【Java语言数列】

import java.util.Scanner;
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改


public class Main {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        ArrayList<Integer> a=new ArrayList<>();
        
        int n=sc.nextInt();
        sc.nextLine();//吸收掉整数后面的换行符
        for(int i=0;i<n;i++){
            String s=sc.nextLine();
            String[] x=s.split(" ");
            //将字符串一空格分割成若干个字符串,返回一个字符串数组
            for(int j=0;j<x.length;j++){
                a.add(Integer.parseInt(x[j]));
            }
        }
        int[] b=new int[a.size()];
        for(int i=0;i<a.size();i++){
            b[i]=a.get(i);
        }
        Arrays.sort(b);
        int x=0;//相同
        int y=0;//空掉
        for(int i=1;i<a.size();i++){
            if(b[i]-b[i-1]==0){
                x=b[i];
            }
            if(b[i]-b[i-1]==2){
                y=b[i]-1;
            }
        }
        System.out.println(y+" "+x);
    }
}

【题目描述】

1871173-20221127223527753-572777928.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
import java.util.Calendar;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR,2000);
        calendar.set(Calendar.MONTH,Calendar.MAY);
        calendar.set(Calendar.DATE,4);
        System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
        scan.close();
    }
}

【题目描述】

1871173-20221127223527880-1480176072.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        A:for(int i=1;i<=99;i++)
        {
          for(int j=1;j<=i+8;j++)
          {
            if(i*j==(i+j)*6)
            {
                System.out.println(i);
                  break A;
            }
          }
        }
        scan.close();
    }
}

【题目描述】

1871173-20221127223527657-805953689.png

【分析与解答】

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

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

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

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改


public class Main {
      public static void main(String[] args) {
        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);
    }
}

【题目描述】

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

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

输入格式:

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

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

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

输入输出样例

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

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str=scan.next();
        int a=0,b=0;
        for(int i=0;i<str.length();i++)
        {
          if(str.charAt(i)=='a'||str.charAt(i)=='e'||str.charAt(i)=='i'||str.charAt(i)=='o'||str.charAt(i)=='u')
          {
            a++;
          }
          else
          {
            b++;
          }
        }
        System.out.println(a);
        System.out.println(b);
        scan.close();
    }
}

【题目描述】

1871173-20221127223527906-1744980093.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        //在此输入您的代码...
        int i,j,sum;
        for(i=1900;i<2012;i++){
          for(j=1;j<30;j++){
              sum=i*10000+600+j;
              if(sum%2012==0 && sum%3==0 && sum%12==0){
                System.out.println(sum);
              }
          }
        }
    }
}

【题目描述】

1871173-20221127223527865-127465711.png
import java.util.*;
public class Main
{
    static int len(int x){
        if(x<10) return 1;
        return len(x/10)+1;
    }
    
    // 取x的第k位数字
    static int f(int x, int k){
        if(len(x)-k==0) return x%10;
        return ______________________;  //填空
    }
    
    public static void main(String[] args)
    {
        int x = 23513;
        //System.out.println(len(x));
        System.out.println(f(x,3));
        System.out.println(f(893275,2));
    }
}

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

import java.util.*;
public class Main
{
    static int len(int x){
        if(x<10) return 1;
        return len(x/10)+1;
    }
    
    // 取x的第k位数字
    static int f(int x, int k){
        if(len(x)-k==0) return x%10;
        return (int)(x/Math.pow(10,len(x)-k))%10;  //填空
    }
    
    public static void main(String[] args)
    {
        int x = 23513;
        //System.out.println(len(x));
        System.out.println(f(x,3));
        System.out.println(f(893275,2));
    }
}

猴子分香蕉

【题目描述】

1871173-20221127223527699-584098601.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
      for(int i = 1;;i++){
        int b = i;
        if(b % 5 == 1){
          b = (b-1)/5*4;
          if(b % 5 ==2){
            b = (b-2)/5*4;
            if(b % 5 == 3){
              b = (b-3)/5*4;
              if(b % 5 == 4){ 
                b = (b-4)/5*4;              
                if(b % 5 == 0 && b >= 5){//最少也有五个香蕉
                  System.out.println(i);
                  break;
                }
              }
            }
          }
        }
      }
    }
}

【题目描述】

1871173-20221127223527779-1191979036.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int sum=0;
        for(int i=1;i<=2019;i++){
            if((i+"").contains("2")||(i+"").contains("0")||(i+"").contains("1")||(i+"").contains("9")){
              sum=sum+i;
            }
        }
        System.out.println(sum);
        scan.close();
    }
}

【题目描述】

1871173-20221127223527735-2064210538.png
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int count=0;
        for(int i=2;;i++){
          if(judge(i)){
            count++;
          }
          if(count==100002){
              System.out.println(i);
              break;
          }
        }
        scan.close();
    }

    public static boolean judge(int n){
      for(int i=2;i<=(int)Math.sqrt(n);i++){
        if(n%i==0){
          return false;
        }
      }
      return true;
    }
}

第几个幸运数字

【题目描述】

1871173-20221127223527665-1777262667.png
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

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

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        int count = 0;
        
        Long l = 59084709587505L;
        for (long i = 0; Math.pow(3, i) <= l; i++) {
            for (int j = 0; Math.pow(5, j) <= l; j++) {
                for (int j2 = 0; Math.pow(5, j2) <= l; j2++) {
                    if (Math.pow(3, i)*Math.pow(5, j)*Math.pow(7, j2)  <= l) {
                        count++;
                    }
                }
            }
        }
        //第一次全0是没有意义的,要减去
        System.out.println(count-1);
    }
}

【题目描述】

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

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

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

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

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

输入输出样例

abaabcaa
4
  • 最大运行时间:1s
  • 最大运行内存: 256M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改


public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        String s=scan.next();
        int arr[]=new int[26];
        for (int i = 0; i <s.length(); i++) {
            arr[s.charAt(i)-'a']++;
        }
        int min = arr[0],max = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]!=0) {
                min = Math.min(arr[i], min);
                max = Math.max(arr[i], max);
            }


        }
        System.out.println(max-min);
        scan.close();
    }
}

【题目描述】

1871173-20221127223527856-765765814.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int day=0;
        int sum=0;
        int coin=1;;
        while(sum<108){
          sum+=coin;
          day++;
          coin+=2;
        }
        System.out.println(day);
        scan.close();
    }
}

【题目描述】

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

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

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

1871173-20221127223527751-1236524033.png

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

输入输出样例

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

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int num=scan.nextInt();
        long start=1;
        for(int i=0;i<num;i++){
            if(i%2==0){
                start=start*2;
            }else{
                start++;
            }
        }
        System.out.println(start);
        scan.close();
    }
}

【题目描述】

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

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

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

输入输出样例

LanQiao
LANQIAO

评测用例规模与约定

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

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

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        System.out.println(scan.nextLine().toUpperCase());
        scan.close();
    }
}

高精度加法

【题目描述】

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

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

输出 a+b。

输入输出样例

  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
import java.math.BigInteger;

// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
       String a = scan.nextLine();
       String b = scan.nextLine();
       BigInteger anum=new BigInteger(a);
       BigInteger bnum=new BigInteger(b);
       System.out.println(anum.add(bnum));
        scan.close();
    }
}

【题目描述】

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

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

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

输入输出样例

8
31
2
28
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int num=scan.nextInt();
        int[]res={31,28,31,30,31,30,31,31,30,31,30,31};
        System.out.println(res[num-1]);
        scan.close();
    }
}

【题目描述】

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

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

输出 n! 。

输入输出样例

3628800
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
import java.math.*;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int num=scan.nextInt();
        if(num==0){
          System.out.println(1);
          return;
        }
        BigInteger sum=BigInteger.ONE;
       for(int i=1;i<=num;i++){
           sum=sum.multiply(new BigInteger(i+""));
         }
         System.out.println(sum);
        scan.close();
    }
}

【题目描述】

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

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

  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        System.out.println((int)('L'));
        scan.close();
    }
}

【题目描述】

1871173-20221127223527693-279838093.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int sum=0;
        String a="LANQIAO";
        for(int i=0;i<a.length();i++){
        	for(int j=i+1;j<a.length();j++){
                sum=sum+Math.abs(((int)(a.charAt(j)))-((int)(a.charAt(i))));
            }
        }
        System.out.println(sum);
        scan.close();
    }
}

【题目描述】

1871173-20221127223527793-1751522054.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		// 在此输入您的代码...
		int num = 2019;
		int result = 0;
		for (int i = 1; i < num; i++) {
			for (int j = i + 1; j < num; j++) {
				int k =num-i-j;
					String si = i + "";
					String sj = j + "";
					String sk = k + "";
					boolean a = !si.contains("2") && !si.contains("4");
					boolean b = !sj.contains("2") && !sj.contains("4");
					boolean c = !sk.contains("2") && !sk.contains("4");
					if (k>i&&k>j&& a && b && c) {
						result++;
					}
				}
			
		}
		System.out.println(result);
		scan.close();
	}
}

三角形面积

【题目描述】

1871173-20221127223527768-275407186.png

输入输出样例

5 6
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int l = scan.nextInt();
        int h = scan.nextInt();
        int tem = l * h;
        if( (tem & 1) == 0){
          System.out.println(tem/2);
        }else{
          System.out.println(String.format("%.1f",tem/2.0));
        }
        scan.close();
    }
}

【题目描述】

1871173-20221127223527731-926003328.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
 public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     int sum=777;
     //在此输入您的代码...
     String res="vxvxvxvxvxvxvvx";
     for(int i =0;i<res.length();i++) {
    	 char temp= res.charAt(i);
    	 if(temp=='v') {
    		 sum=sum*2;
    	 }else {
    		 sum=sum-555;
    	 }
     }
     System.out.println(sum);
     scan.close();
 }
}

【题目描述】

1871173-20221127223527840-775153047.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
    int sum = 0;
    for (int i = 3; i < 100; i++) {
        for (int j = i; j < 100; j++) {
            sum +=j;
            if(sum == 236) {
                System.out.println(i);    
            }    
        }
        //置0,让sum重新累加,防止sum的数据错误。
        sum = 0;
    }

}
}

【题目描述】

1871173-20221127223527840-383064381.png

【分析与解答】

【Java语言数列】

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=10;i<=99;i++){
          if(i*i*i>=1000&&i*i*i*i>=100000){
            String res=i*i*i+""+i*i*i*i;
            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")){
              System.out.println(i);
            }
          }
        }
        scan.close();
    }
}

【题目描述】

1871173-20221127223527697-352457649.png

【分析与解答】

【Java语言数列】

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 qing = 1; qing <= 9; qing++) {
			for (int cai = 0; cai <= 9; cai++) {
				for (int mi = 0; mi <= 9; mi++) {
					for (int bian = 0; bian <= 9; bian++) {
						for (int shang = 0; shang <= 9; shang++) {
							for (int deng = 0; deng <= 9; deng++) {
								if((qing*100+cai*10+mi)*(qing*100+cai*10+mi)==100000*qing+10000*bian+shang*1000+deng*100+bian*10+cai) {
									System.out.println(qing+""+cai+""+mi);
								}
							}
						}
					}
				}
			}
		}
		scan.close();
	}
}

生成回文数

【题目描述】

1871173-20221127223527864-1454022737.png

【分析与解答】

【Java语言数列】

import java.math.BigInteger;
import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int num=0;
        for(int i=0;i<=200;i++){
          String sum=i+"";
          while(!judge(sum)){
            sum=rever(sum).toString();
            num++;
            if(num>1000){
              System.out.println(i);
              break;
            }
          }
          num=0;
        }
        scan.close();
    }
    public static BigInteger rever(String num1){
      StringBuffer temp=new StringBuffer(num1);
      String num2=temp.reverse().toString();
      BigInteger res=new BigInteger(num1).add(new BigInteger(num2));
      return res;
    }

    public static boolean judge(String num){
      StringBuffer num1=new StringBuffer(num);
      String num2=num1.reverse().toString();
      return num2.equals(num);
    }
}

【题目描述】

1871173-20221127223527839-757227138.png

【分析与解答】

【Java语言数列】

import java.util.Arrays;
import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
 public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     //在此输入您的代码...
     char temp[]=scan.nextLine().toCharArray();
     Arrays.sort(temp);
     String res="";
     for(int i=0;i<temp.length;i++) {
    	 res+=temp[i];
     }
     System.out.println(res);
     scan.close();
 }
}

【题目描述】

1871173-20221127223527628-1599648015.png

【分析与解答】

【Java语言数列】

import java.math.BigInteger;
import java.util.Arrays;
import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
 public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     //在此输入您的代码...
     BigInteger a=new BigInteger("20").pow(22).mod(new BigInteger("7"));
     System.out.println(Integer.parseInt(a.toString())+6);
     scan.close();
 }
}

【题目描述】

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

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

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

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

样例输入1

A0

样例输出1

样例输入 2

A1

样例输出 2

841 594
  • 最大运行时间:1s
  • 最大运行内存: 512M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String a = scan.next();
        char b = a.charAt(1);
        int c = Integer.parseInt(String.valueOf(b));
        int left = 1189;
        int right = 841;
        for (int i = 1; i <= c; i++) {
            if(left >= right){
                if(left %2 ==0){
                    left = left / 2;
                }else{
                    left = (left-1) /2;
                }
            }else{
                if(right %2 ==0){
                    right = right / 2;
                }else{
                    right = (right-1) /2;
                }
            }
        }
        if(left > right){
            System.out.println(left);
            System.out.println(right);
        }else{
            System.out.println(right);
            System.out.println(left);
        }

    }
}

平行四边形

【题目描述】

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

1871173-20221127223527798-2108565473.png

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

输入输出样例

5 6
30
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String a = scan.next();
        char b = a.charAt(1);
        int c = Integer.parseInt(String.valueOf(b));
        int left = 1189;
        int right = 841;
        for (int i = 1; i <= c; i++) {
            if(left >= right){
                if(left %2 ==0){
                    left = left / 2;
                }else{
                    left = (left-1) /2;
                }
            }else{
                if(right %2 ==0){
                    right = right / 2;
                }else{
                    right = (right-1) /2;
                }
            }
        }
        if(left > right){
            System.out.println(left);
            System.out.println(right);
        }else{
            System.out.println(right);
            System.out.println(left);
        }

    }
}

【题目描述】

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

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

  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int num=0;
        for(int i=1;i<=2020;i++){
          if(i%4==0&&i%6==0){
            num++;
          }
        }
        System.out.println(num);
        scan.close();
    }
}

【题目描述】

1871173-20221127223527794-1706597133.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
 //题目的意思 每个数都是2,3,5,7
    public static boolean isPrimeNumber(int n){
        //判断是否为质数
          if(n==1||n==0) return false;
          for(int i=2;i<=Math.sqrt(n);i++){
            if(n%i==0) return false;
          }
          return true;
        }
        public static void main(String[] args) {
            int sum=0;
            for(int i=1;i<=20210605;i++){
              int j=i;
              while(j!=0){//筛选条件 取出每位上的数看是否为质数 
                if(isPrimeNumber(j%10)==false)
                  break;
                j=j/10;

              }//判断是否为质数 j==0 是防止break中跳出的数
              if(j==0&&isPrimeNumber(i))
                sum++;
            }
            System.out.println(sum);
        }
}

【题目描述】

1871173-20221127223527737-124255525.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        String sum="";
        for(int i=1;i<=2020;i++){
          sum+=i;
        }
        System.out.println(sum.length());
        scan.close();
    }
}

【题目描述】

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

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

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

1871173-20221127223527778-1351602870.png

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

输入输出样例

8 32
no
2 28
yes
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int m=sc.nextInt();
        int d=sc.nextInt();
        String ans="yes";
        if(m>12 || d>31) {
            ans="no";
        }else if(m==2 && d>28) {
            ans="no";
        }else if((m==4 ||m==6||m==9||m==11) && d>30) {
            ans="no";
        }
        System.out.println(ans);
    }
}

【题目描述】

1871173-20221127223527779-1689156304.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int num=0;
        for(int i=4;i<=2020;i++){
          for(int j=2;j<i;j++){
            if(i%j==0){
              num++;
              break;
            }
          }
        }
        System.out.println(num);
        scan.close();
    }
}

【题目描述】

1871173-20221127223527709-1235286005.png

【分析与解答】

【Java语言数列】

import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
 public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     //在此输入您的代码...
      int count=0;
     for (int i = 1; i <= 2019; i++) {
         if ((i+"").contains("9")){
             count++;
         }
     }
     System.out.println(count);
     scan.close();
 }
}

【题目描述】

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

输入一行包含一个整数 n。

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

输入输出样例

2021
===2021===
2021101
==2021101=

评测用例规模与约定

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

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

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int num=scan.nextInt();
        String temp=num+"";
        while(temp.length()<=8){
          temp="="+temp;
          temp=temp+"=";
        }
        if(temp.length()==9){
          temp="="+temp;
        }
        System.out.println(temp);
        scan.close();
    }
}

【题目描述】

1871173-20221127223527839-412862114.png
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int num=0;
        for(int i=1;i<=2020;i++){
          if(2020%i==0){
            num++;
          }
        }
        System.out.println(num);
        scan.close();
    }
}

【题目描述】

1871173-20221127223527857-51611750.png
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int num=0;
        for(int i=1;i<=2020;i++){
          if(2020%i==0&&3030%i==0){
            num++;
          }
        }
        System.out.println(num);
        scan.close();
    }
}

【题目描述】

1871173-20221127223527694-734077844.png
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int num=0;
        for(int i=1;i<=1200000;i++){
          if(1200000%i==0){
            num++;
          }
        }
        System.out.println(num);
        scan.close();
    }
}

【题目描述】

1871173-20221127223527775-184881376.png
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
 public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     //在此输入您的代码...
     int num=0;
     Calendar cale = Calendar.getInstance();
     cale.set(1900, 0, 1);
     Date now=cale.getTime();
     SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyyMMdd");
     String transformDate=simpleDateFormat.format(now);
     while(!transformDate.equals("99991231")){
    	 now=cale.getTime();
         simpleDateFormat=new SimpleDateFormat("yyyyMMdd");
         transformDate=simpleDateFormat.format(now);
         if(transformDate.contains("2")) {
        	 num++;
         }
    	 cale.add(5, 1);
     }
     System.out.println(num);
     scan.close();
 }
}

【题目描述】

1871173-20221127223527818-402642533.png
  • 最大运行时间:1s
  • 最大运行内存: 128M

【分析与解答】

【Java语言数列】

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=0;i<=99;i++){
          int wife=i;
          int husband=(int)(1.5*wife);
          if((husband-20)==2*(wife-20)&&(1.5*wife)==(int)(1.5*wife)){
            System.out.println(wife);
          }
        }
        scan.close();
    }
}

【题目描述】

1871173-20221127223527718-2131116816.png
30 2 3 6

样例说明:

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

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

【分析与解答】

【Java语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int num=scan.nextInt();
        int a=scan.nextInt();
        int b=scan.nextInt();
        int c=scan.nextInt();
        int sum=0;
        for(int i=1;i<=num;i++){
          if(i%a!=0&&i%b!=0&&i%c!=0){
            sum++;
          }
        }
        System.out.println(sum);
        scan.close();
    }
}

【题目描述】

1871173-20221127223527781-1738492271.png

【分析与解答】

【Java语言数列】

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
 public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     //在此输入您的代码...
     int num=0;
     Calendar cale = Calendar.getInstance();
     cale.set(1901, 0, 1);
     Date now=cale.getTime();
     Calendar cale1 = Calendar.getInstance();
     cale1.set(2000, 11, 31);
     Date now1=cale1.getTime();
     long difference =  (now1.getTime()-now.getTime())/86400000;
     System.out.println(difference/7);
     scan.close();
 }
}

【题目描述】

1871173-20221127223527804-2095176360.png

【分析与解答】

【Java语言数列】

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		// 在此输入您的代码...
		int num = 0;
		Calendar cale = Calendar.getInstance();
		for (int i = 1949; i <= 2012; i++) {
			cale.set(i, 9, 1);
			if (cale.get(Calendar.DAY_OF_WEEK) == 1) {
				num++;
			}

		}
		System.out.println(num);
		scan.close();
	}
}

立方变自身

【题目描述】

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

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

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语言数列】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int num=0;
        for(int i=1;i<=999999;i++) {
        	if(i==add(i*i*i+"")) {
        		num++;
        	}
        }
        System.out.println(num);
        scan.close();
    }
    public static int add(String num){
      char temp[]=num.toCharArray();
      int sum=0;
      for(int i=0;i<temp.length;i++) {
    	  sum=sum+temp[i]-'0';
      }
      return sum;
    }
}

【题目描述】

1871173-20221127223527663-1076029536.png

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

1871173-20221127223527841-442839050.png

输入输出样例

46800999
13:00:00
01:08:23

评测用例规模与约定

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

  • 最大运行时间:1s
  • 最大运行内存: 512M

【分析与解答】

【Java语言数列】

import java.security.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        String time1 = sdf.format(new Date(scan.nextLong()));
        System.out.println(time1);
        scan.close();
    }
}




About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK