前言
本篇文章主要收集几个比较常见基础的编程题,适合刚学习Java基础或者复习Java语法的同学进行练习。本专栏后期会更新Java算法相关的知识,感兴趣可以订阅关注~
判断素数
质数,又称素数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数。
判断一个数是不是素数:
import java.util.*;
//判断一个数是不是素数
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a = s.nextInt();
int k= 0;
for(int i=2;i<a;i++) {
if(a%i==0) {
k++;
}
}
if(k==0) {
System.out.println("是");
} else {
System.out.println("不是");
}
}
}
水仙花数
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
判断一个三位数是不是水仙花数:
import java.util.*;
public class Main {
public static void main(String[] args){
System.out.println("请输入一个数字:");
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
int a = num/100; // 百位
int b = num/10%10; // 十位
int c = num%100%10; // 个位
System.out.println(a+""+b+""+c);
if(a*a*a+b*b*b+c*c*c == num) {
System.out.println("是水仙花数");
} else {
System.out.println("不是水仙花数");
}
}
}
求三位数的所有水仙花数:
import java.util.*;
public class Main {
public static void main(String[] args){
for(int num=100;num<=999;num++) {
int a = num/100;
int b = num/10%10;
int c = num%100%10;
if(a*a*a+b*b*b+c*c*c == num) {
System.out.println(num);
}
}
}
}
斐波拉契数列
F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
求斐波拉契数列中第n个是几:
- 使用递归进行实现
import java.util.*;
public class Fibonacci {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
fib(a);
System.out.println(fib(a));
}
public static int fib(int a) {
if (a <= 2) {
return 1;//前两项都为1,所以直接返回1即可
}
return fib(a - 1) + fib(a - 2);
}
}
- 使用循环实现:
import java.util.*;
public class Fibonacci {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int s = scanner.nextInt();
int a = 1,b=1,c=0;
for(int i=3;i<=s;i++) {
c = a+b;
a = b;
b = c;
}
System.out.println(c);
}
}
判断闰年:
输入年份判断是否是闰年:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int year = s.nextInt();
if(year%4==0 && year%100 !=0 || year%400==0) {
System.out.println("是闰年");
} else {
System.out.println("是平年");
}
}
}
判断大小写字母:
输入字母,判断大小写:
也可以用ascii码进行判断
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
char a = s.nextLine().charAt(0);
if(a>='a' && a<='z') {
System.out.println("是小写字母");
}else if(a>='A' && a<='Z'){
System.out.println("是大写字母");
}else {
System.out.println("其他");
}
}
}
有序数组中查找元素
顺序查找:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int[] arr = new int[]{1,2,3,4,5};
int k = 0;
for(int i=0;i<arr.length;i++) {
if(a == arr[i]) {
k++;
}
}
if(k!=0) {
System.out.println("找到啦");
}else {
System.out.println("不存在");
}
}
}
二分查找(折半查找):
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int[] arr = new int[]{1,2,3,4,5};
int k = 0;
int start = 0;
int end = arr.length-1;
while(start<=end) {
int mid = (start+end)/2;
if(a<arr[mid])
end = mid-1;
else if(a>arr[mid])
start = mid+1;
else {
k++;
break;
}
}
if(k!=0) {
System.out.println("找到啦");
}else {
System.out.println("不存在");
}
}
}
最后
本篇文章会持续更新,比较基础适合刷题练习的我都会加进来,后续会继续更新java算法编程,难度会慢慢加,本文只适合基础刷题,有兴趣可以关注~~~