计算字符串最后一个单词的长度,单词以空格隔开。
题目分析:字符串 最后一个单词长度 空格分开
解题思路:首先考虑输入,Scanner 类。系统输入,System.in
获取输入的字符串in.nextLine()
获取字符串最后一个单词,以空格分开,所以把字符串按照" "分割成字符串,用split函数
再用length函数获取长度即可。
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str=in.nextLine();
String[] s=str.split(" ");//字符串分割成函数
int length=s[s.length-1].length();
System.out.println(length);
}
}
质数因子
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
解题思路:首先要用递归,还需
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//获取正整数num
long num = scanner.nextLong();
long k = (long) Math.sqrt(num);
//计算num的开方
//找质数因子的方法,就是用循环递归,如果重复取质因子用while循环,不用重复用if-else判断
for (long i = 2; i <= k; ++i) {
while (num % i == 0) {
System.out.print(i + " ");
num /= i;
}
}
//判断循环结束后的num是否成质数
System.out.println(num == 1 ? "" : num + " ");
}
}
要做质数判断。处理完成程序功能还需满足算法复杂度符合要求。
解题思路:跟质数相关的循环一定要用Math.sqrt()。递归就是循环改变同一个变量