笔试训练(3)-创新互联

1)结构化程序的设计原则:模块化,自项向下,逐步求精

创新互联-专业网站定制、快速模板网站建设、高性价比衡山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式衡山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖衡山地区。费用合理售后完善,十载实体公司更值得信赖。

2)下列程序的输出结果是:0

public class Task {
    static int i;
    public static void main(String[] args) {
        System.out.println(i);
    }
}

3)下列程序的输出结果是:1和1.0

public static void main(String[] args) {
       System.out.println(100/3);
       System.out.println(100/3.0);
    }

4)在JAVA基本类型中,小数默认是double类型,如果我们写float a=1.0,此时程序就会报错,因为默认是double类型,我们应该写成float a=1.0f;

5)方法通常存储在JVM中的方法区

编程题1:组队竞赛组队竞赛_牛客笔试题_niu

题目大概叙述:牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每一个选手都有一个水平值a_i,现在要把这些选手进行组队,一共组成N个队伍,即每一个队伍3个人,牛牛发现队伍的水平值等于该队伍队员的第二水平值
例如:
一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3
一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3
一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2
为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和大。
如样例所示:
如果牛牛把6个队员划分到两个队伍
如果方案为:
team1:{1,2,5}, team2:{5,5,8}, 这时候水平值总和为7.
而如果方案为:
team1:{2,5,8}, team2:{1,5,5}, 这时候水平值总和为10.
没有比总和为10更大的方案,所以输出10.

思路:

1)对于1,2,5,5,5,8这个数组来说,我们该如何进行分组呢?总共数组的长度是9

我们取第一个元素和倒数后两个元素:1,5,8(0下标取的位置是4)

我们取第二个元素所取得元素下标是:2,5,5(1下标取的位置是2)

2)对于2,5,1,4,3,7,6,9,8这个数组来说,总共数组的长度是9,我们先给数组进行排序:1,2,3,4,5,6,7,8,9

我们取第一个元素和倒数后两个元素:1,8,9(0号位置下标开始取得位置下标是7)

我们取第二个元素所取得元素下标是:2,7,8(1号位置下标开始取得的位置下标是5)

我们取第三个元素所取得元素下表是:3,4,5(2号位置下标开始取得的位置下标是4)

1)所以说我们定义一个循环,循环所走的次数也就是分组所分的次数也就是len/3 2)既然循环从前向后走,每走到一个位置,对应的元素下标是array.len-2*(i+1)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNextInt()){
        int n=scanner.nextInt();
        int[] array=new int[3*n];
        for(int i=0;i<3*n;i++){
            array[i]=scanner.nextInt();
        }
        Arrays.sort(array);
        long sum=0;
        for(int i=0;i

编程题第二题:删除公共字符 第一种方法:通过hashSet来进行解决:
import java.util.Scanner;
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNext()){
            String str1=scanner.nextLine();
            String str2=scanner.nextLine();
            HashSetresult=new HashSet<>();
            for(int i=0;i
第二种方法:也是一种哈希映射

输入用例:

a,b,c,d,e,f

b,e

输出用例:

a,c,d,f

1)由于小写字母a的ASCIL码值是97,我们可以申请一个数组长度大小是256的数组,遍历第二个字符串,把对应的字符出现的次数放到数组里面

2)遍历第一个字符串如果说在数组中的值是0,那么说明这个字符在第二个字符串中没有出现过

public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        String str1=scanner.nextLine();
        String str2=scanner.nextLine();
       int[] array=new int[256];
       for(int i=0;i

第三种方法:使用哈希表存储每一个字符出现的次数

1)先进行创建一个HashMap统计第二个字符串,记录每一个字符出现的次数

2)遍历第一个字符串中的所有字符,如果在hashMap中找不到,说明这个字符在字符串2中没有出现过

public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        String str1=scanner.nextLine();
        String str2=scanner.nextLine();
        HashMapresult=new HashMap<>();
        for(int i=0;i

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


名称栏目:笔试训练(3)-创新互联
本文地址:http://ybzwz.com/article/cossih.html