前言
for循环练习。
一、素数
写一个程序,使用两个嵌套的for循环和取余操作符(%)来探测和打印素数(只能被其自身和1整除,而不能被其他数字整除的整数)。
LxFour.java
package thinkinginjava.lx.lx_4_3_2;
import java.util.ArrayList;
import java.util.List;
/**
* Create by zjg on 2023/6/23
*/
public class LxFour {
public static void main(String[] args) {
List<Integer> list=new ArrayList<>();
int max=100;
for(int i=2;i<max;i++){
for(int j=2;j<max;j++){
boolean flag=false;
if(i==j){
continue;
}
if(i%j==0){
break;
}
if(j==100-1){//取到最后一个还没有能取余0的
flag=true;
}
if(flag){
list.add(i);
}
}
}
System.out.println("截止到"+max+",共有"+list.size()+"个素数");
System.out.println(list);
}
}
二、斐波那契数列
一个斐波那契数列是有数字1、1、2、3、5、8、13、21、34等等组成,其中每一个数字(从第三个数字起)都是前两个数字的和。创建一个方法,接收一个整数参数,并显示从第一个元素开始总共由该参数指定的个数所构成的所有斐波那契数列数字。
LxNine.java
package thinkinginjava.lx.lx_4_3_2;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* Create by zjg on 2023/6/23
*/
public class LxNine {
public static void main(String[] args) {
List<Integer> collect = Arrays.stream(args).flatMapToInt((arg) -> IntStream.of(Integer.parseInt(arg))).boxed().collect(Collectors.toList());
int count=10;
outer:
for(;true;){
int size = collect.size();
if(size>=count){
break outer;
}
Integer integer2 = collect.get(size - 2);
Integer integer1 = collect.get(size - 1);
collect.add(integer2+integer1);
}
System.out.println("生成斐波那契数列"+collect);
}
}
三、吸血鬼数字
吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的。
LxTen.java
package thinkinginjava.lx.lx_4_3_2;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Create by zjg on 2023/6/23
*/
public class LxTen {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
int start = 10, end = 100;
for (int i = start; i < end; i++) {
for (int j = i; j < end; j++) {
String sum = String.valueOf(i * j);
if (sum.length()!=4||sum.endsWith("00")) {
continue;
}
char[] chars = sum.toCharArray();
char[] charArray = (String.valueOf(i)+ j).toCharArray();
Arrays.sort(chars);Arrays.sort(charArray);
if(Arrays.equals(chars, charArray)){
System.out.println(i+"*"+j+"="+sum);
list.add(sum);
}
}
}
System.out.println("四位数吸血鬼数字:"+list);
}
}