笔试训练(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(); HashSet
result=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(); HashMap
result=new HashMap<>(); for(int i=0;i
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网页名称:笔试训练(3)-创新互联
当前网址:http://hbruida.cn/article/cossih.html