城乡建设厅网站,企业门户网站需求分析,成都建筑网站建设,现代感的传媒公司名称目录 第一章、HJ1计算字符串最后一个单词的长度#xff0c;单词以空格隔开。1.1#xff09;描述1.2#xff09;解题第二章、算法题HJ2 计算某字符出现次数1.1#xff09;题目描述1.2#xff09;解题思路与答案第三章、算法题HJ3 明明的随机数1.1#xff09;题目描述1.2单词以空格隔开。1.1描述1.2解题第二章、算法题HJ2 计算某字符出现次数1.1题目描述1.2解题思路与答案第三章、算法题HJ3 明明的随机数1.1题目描述1.2解题思路与答案第四章、算法题HJ4 字符串分隔1.1题目描述1.2解题思路与答案第五章、算法题HJ5 进制转换1.1题目描述1.2解题思路与答案1.3派仔的解题思路与答案第六章、算法题HJ6 质数因子1.1题目描述1.2文的盲的解题思路与答案第七章、算法题HJ7 取近似值1.1题目描述1.2第一种解题思路与答案1.3第二种解题思路与答案第八章、算法题HJ8 合并表记录1.1题目描述1.2解题思路与答案 第一章、HJ1计算字符串最后一个单词的长度单词以空格隔开。
1.1描述
描述 计算字符串最后一个单词的长度单词以空格隔开字符串长度小于5000。注字符串末尾不以空格为结尾 输入描述 输入一行代表要计算的字符串非空长度小于5000。 输出描述 输出一个整数表示输入字符串最后一个单词的长度。
1.2解题
import java.util.Scanner;public class Main{public static void main(String[] args){Scanner sc new Scanner(System.in);String st sc.nextLine();String[] s st.split(\\s) ;//或者st.split( );int length s[s.length - 1].length();System.out.println(length);}}
第二章、算法题HJ2 计算某字符出现次数
1.1题目描述
题目描述 写出一个程序接受一个由字母、数字和空格组成的字符串和一个字符然后输出输入字符串中该字符的出现次数。不区分大小写字母
输入描述 第一行输入一个由字母、数字和空格组成的字符串第二行输入一个字符保证该字符不为空格。
输出描述 输出输入字符串中含有该字符的个数。不区分大小写字母
示例
1.2解题思路与答案
解题思路 ①查看示例是不关心大小写的所以需要将大写转为小写 ②将s1需要查找的字符串(即s2)全部替换为 “” ③将原来的字符串长度-替换过后的字符串长度出现的次数
答案 public static void main(String[] args){Scanner input new Scanner(System.in);// 输入第一个字符串并且全部转小写String s1 input.nextLine().toLowerCase();// 输入单个字符串并且转小写String s2 input.nextLine().toLowerCase();// 完整字符的长度-单个字符长度 出现的次数int num s1.length() - s1.replaceAll(s2,).length();System.out.println(num);}
第三章、算法题HJ3 明明的随机数
1.1题目描述
题目描述 明明生成了NN个1到500之间的随机整数。请你删去其中重复的数字即相同的数字只保留一个把其余相同的数去掉然后再把这些数从小到大排序按照排好的顺序输出。
数据范围 1 \le n \le 1000 \1≤n≤1000 输入的数字大小满足 1 \leval \le 500 \1≤val≤500
输入描述 第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数代表明明生成的随机数。 具体格式可以参考下面的示例。
输出描述 输出多行表示输入数据处理后的结果
示例
1.2解题思路与答案
解题思路 ①将数据存入TreeSet集合进行去重排序 ②遍历输出数据
答案
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);//获取总个数int num sc.nextInt();//创建TreeSet进行去重排序TreeSet se new TreeSet();//输入num个数据for(int i 0 ; i num ;i){se.add(sc.nextInt());}Iterator iterator se.iterator();while (iterator.hasNext()){System.out.println(iterator.next());}}
}
第四章、算法题HJ4 字符串分隔
1.1题目描述
题目描述 描述 •输入一个字符串请按长度为8拆分每个输入字符串并进行输出
•长度不是8整数倍的字符串请在后面补数字0空字符串不处理。
输入描述 连续输入字符串(每个字符串长度小于等于100)
输出描述 依次输出所有分割后的长度为8的新字符串
示例
1.2解题思路与答案
Luo_xguan的解题思路 1.获取输入的字符串 2.判断字符串长度小于8,在后面补上0达到8位大于8先以8位作为 一段截取再判断剩余字符串长度与8比较如果小于8,照上述操作大于8先截取8位再判断剩下的…如此循环操作。
答案
import java.util.Scanner;
/*** author lxg* description 字符串分割* date 2021/9/26*/
public class Main {public static void main(String[] args) {Scanner input new Scanner(System.in);while(input.hasNextLine()){String s input.nextLine();split(s);}}public static void split(String s){while(s.length()8){System.out.println(s.substring(0,8));ss.substring(8);}if(s.length()8 s.length()0){s00000000;System.out.println(s.substring(0,8));}}
}
第五章、算法题HJ5 进制转换
1.1题目描述
题目描述 写出一个程序接受一个十六进制的数输出该数值的十进制表示。
输入描述 输入一个十六进制的数值字符串。
输出描述 输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例
1.2解题思路与答案
解题思路 ①使用Java自带的Integer.parseInt(String,16) 方法
答案
import java.io.*;
import java.util.*;public class Main{public static void main(String[] args) throws Exception{Scanner sc new Scanner(System.in);while(sc.hasNextLine()){String s sc.nextLine();System.out.println(Integer.parseInt(s.substring(2,s.length()),16));}}
}1.3派仔的解题思路与答案
①res res * BASE map.get(ch); 这个公式是精华原理如图
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;public class Putest {private final static int BASE 16;private static MapCharacter, Integer map new HashMapCharacter, Integer(){{put(0, 0);put(1, 1);put(2, 2);put(3, 3);put(4, 4);put(5, 5);put(6, 6);put(7, 7);put(8, 8);put(9, 9);put(A, 10);put(B, 11);put(C, 12);put(D, 13);put(E, 14);put(F, 15);put(a, 10);put(b, 11);put(c, 12);put(d, 13);put(e, 14);put(f, 15);}};public static int getDecimal(String number) {int res 0;char [] arr number.toCharArray();for( int i0;iarr .length;i){//这个公式是精华map.get()方法返回指定键所映射的值res res * BASE map.get(arr[i]);}/* 也可以这样写循环for (char ch : number.toCharArray()) {//这个公式是精华map.get()方法返回指定键所映射的值res res * BASE map.get(ch);}*/return res;}public static void main(String[] args) {Scanner in new Scanner(System.in);while (in.hasNext()) {String number in.next();int res getDecimal(number.substring(2));System.out.println(res);}}
}
第六章、算法题HJ6 质数因子
1.1题目描述
题目描述 功能:输入一个正整数按照从小到大的顺序输出它的所有质因子重复的也要列举如180的质因子为2 2 3 3 5
输入描述 输入一个整数
输出描述 按照从小到大的顺序输出它的所有质数的因子以空格隔开。
示例
1.2文的盲的解题思路与答案
解题思路 ①试除法是一种简单有效的方法,可以快速找到给定数的质因数。首先,从最小的质数2开始,不断用给定数去除,如果能整除,则找到一个质因数,并将其记录下来。然后将商作为新的数,继续用质数去除,直到商变为1为止。这样就可以找到给定数的所有质因数。 ②因为一个正整数最多有一个质因子大于其平方根且只会是其本身所以我们判断数 num 是不是质数时没必要从 2 一直尝试到 num 一样此题中的大循环也大可不必写一个到 num 的循环写到 根号num即可如果此时数字还没有除数则可判定其本身是一个质数没有再除下去的必要了直接打印其本身即可
答案
public static void main(String[] args) {Scanner scanner new Scanner(System.in);long num scanner.nextLong();long k (long) Math.sqrt(num);for (long i 2; i k; i) {while (num % i 0) {System.out.print(i );num / i;}}System.out.println(num 1 ? : num );
}第七章、算法题HJ7 取近似值
1.1题目描述
题目描述 写出一个程序接受一个正浮点数值输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整小于 0.5 则向下取整。 数据范围保证输入的数字在 32 位浮点数范围内
输入描述 输入一个正浮点数值
输出描述 输出该数值的近似整数值
示例
1.2第一种解题思路与答案
派仔的解题思路 ①浮点数强转int时直接舍掉小数只留下整数。
答案
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);double number in.nextDouble();System.out.println((int)(number 0.5));}
}1.3第二种解题思路与答案
解题思路 ①Java中的Math.round()方法是将浮点型进行“四舍五入”转换为int类型的一个方法
答案
import java.util.*;
public class Main{public static void main(String[] args){Scanner sc new Scanner(System.in);Double d sc.nextDouble();System.out.println((int)Math.round(d));}
}
第八章、算法题HJ8 合并表记录
1.1题目描述
题目描述 数据表记录包含表索引index和数值valueint范围的正整数请对表索引相同的记录进行合并即将相同索引的数值进行求和运算输出按照index值升序进行输出。 提示: 0 index 11111111 1 value 100000
输入描述 先输入键值对的个数n1 n 500 接下来n行每行输入成对的index和value值以空格隔开
输出描述 输出合并后的键值对多行
示例
1.2解题思路与答案
fuxiaoxian的解题思路 ①使用map, 然后要自动排序,就可是使用treeMap ②用map自带的getOrDefault方法,如果根据key没有值,就用默认的0表示方法的值,如果能根据key找到对应的值,那么直接赋值
答案
import java.util.*;
public class Main {public static void main(String[] args){Scanner sc new Scanner(System.in);TreeMapInteger,Integer map new TreeMap();while(sc.hasNext()){int n sc.nextInt();for(int i 0;in;i){int key sc.nextInt();int value sc.nextInt();map.put(key,map.getOrDefault(key,0)value);}for(Integer i : map.keySet()){System.out.println(i map.get(i));}}}
}