bool类型
package input;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner in= new Scanner(System.in);
for(int n=2;n<100;n++)
{
boolean isPrime=true;
for(int i=2;i<n;i++)
{
if(n%i==0)
{
isPrime=false;
break;
}
}
if(isPrime)
{
System.out.print(n+" ");
}
}
}
}
逻辑类型
- 运算结果是一个逻辑值,true或false
- !:逻辑非
- &&:逻辑与
- ||:逻辑或
- 优先级:!>&&>||
优先级 | 运算符 | 结合性 |
1 | () | 从左到右 |
2 | !+ - ++ -- | 从右到左(单目的+和-) |
3 | * / % | 从左到右 |
4 | + - | 从左到右 |
5 | < <= > >= | 从左到右 |
6 | == != | 从左到右 |
7 | && | 从左到右 |
8 | || | 从左到右 |
9 | = += -=*= /= %= | 从右到左 |
求和
package input;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner in= new Scanner(System.in);
int n=in.nextInt();
double sum=0.0;
for(int i=1;i<=n;i++)
{
sum+=1.0/i;
}
System.out.printf("%.2f",sum);
}
}
package input;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner in= new Scanner(System.in);
int n=in.nextInt();
double sum=0.0;
int sign=1;
for(int i=1;i<=n;i++)
{
//i 为奇数的时候是正的
if(i%2==1) {
sum+=1.0/i;
}
else {
sum-=1.0/i;
}
}
System.out.printf("%.2f",sum);
}
}
package input;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner in= new Scanner(System.in);
int n=in.nextInt();
double sum=0.0;
int sign=1;
for(int i=1;i<=n;i++,sign=-sign)//可以把sign挪到这个for里去,但是要用逗号隔开
{
sum+=sign*1.0/i;
}
System.out.printf("%.2f",sum);
}
}
最大公约数
package input;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner in= new Scanner(System.in);
int a=in.nextInt();
int b=in.nextInt();
int gcd=1;
for(int i=2;i<=a&&i<=b;i++) {
if(a%i==0&&b%i==0) {
gcd=i;
}
}
System.out.println(gcd);
}
}
枚举:从2开始找能被两个数同时整除的数,在循环里更新这个值,直到枚举结束,就能输出最大公约数。
辗转相除法
步骤:
- 如果b=0,跳出循环,a就是最大公约数
- 计算a除以b的余数,把a的值给b,把余数给a;
- 回到第一步
package input;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner in= new Scanner(System.in);
int a=in.nextInt();
int b=in.nextInt();
int gcd=1;
while(b!=0) {
int r=a%b;
a=b;
b=r;
}
System.out.println(a);
}
}