Java基础刷题练习合集持续更新(判断素数,水仙花数,斐波拉契数列递归,闰年,大小写字母,顺序查找,折半查找)

前言

本篇文章主要收集几个比较常见基础的编程题,适合刚学习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个是几:

  1. 使用递归进行实现
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);
	}
}
  1. 使用循环实现:
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算法编程,难度会慢慢加,本文只适合基础刷题,有兴趣可以关注~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Beiyux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值