JAVA重刷课感想1/2

条件较多时看起来会比较复杂,可能并不容易算

但是对于计算机来说,对于一个条件直接判断,不存在人看起来的麻烦

int i = 4
if (i == 1 | i % 2 == 0 & i != 2);
//i=1或不为2的偶数

二维数组可以这样写,以下为两行三列

int [][] a = {
	{1,2,6},
	{3,},
//可以留 ,   以便以后再写
};

判断一个数是否是素数,1不是素数,2是素数

1.到这个数减一

2.到这个数的平方根是否被整除

3.不能被2,3,5,7整除

4.不能被素数整除,如下代码,类似于递归的思路,与递归的反推不同,正推

int[] nums2 = new int[20];
//前二十个素数
nums2[0] = 2;
int index2 = 1;
y: for (int i = 3; index2 < 20; i++) {
//从3开始每次加一判断是否素数,下标小于20,从0到19二十个数
	for (int j = 0; j < index2; j++) {
	//下标从已存放素数的0开始,到总存放数的下标 这句描述不清晰,结合上下文分析
      if (i % nums2[j] == 0) {
	  //判断的数除以数组内已存放的素数,余数为0不是素数
    		continue y;
            //跳出本次循环进行下一次循环
		}
	}	
	nums2[index2++] = i;
}

5.素数的倍数都不是素数

boolean[] a = new boolean[100];
for (int i = 0; i < a.length; i++) {
    a[i] = true;
}
// 下标从2开始表示数字2,之前的0,1不考虑计算
for (int j = 2; j < a.length; j++) {
	if (a[j]) {
		for (int i = 2; i * j < a.length; i++) {
			a[i * j] = false;
		}
	}
}
for (int i = 2; i < a.length; i++) {
	if (a[i] == true) {
		System.out.print(i + " ");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值