1. 判断质数
问题:设计一个方法,判断一个数字是不是质数
分析:1)什么是质数:也叫素数,只能被1 和它本身所整除的数,最小的质数是2 ,也是唯一的偶数质数。
注意:1既不是质数也不是合数
2)如何判断质数:只需要判断到他的平方根即可,因为一个合数分解质因数时,最大质因数不会大于他的平方根。
3)如何求一个数的平方根:直接使用java提供的平方根函数 sqrt(n)
代码实现:
import java.util.Scanner;
public class ZhiShu {
@SuppressWarnings("resource")
public static void main(String[] args) {
// TODO Auto-generated method stub
String flag;
Scanner sc=new Scanner(System.in);
System.out.print("请输入一个数:");
do{
try{
int num = sc.nextInt();
if(isZhiShu(num)) // 调用isZhiShu()方法并判断
System.out.print("整数"+num+"是质数!"); //isZhiShu()方法返回true时输出质数
else
System.out.println("整数"+num+"不是质数!"); //isZhuShu()方法返回false时输出不是质数
}catch(Exception e){
System.out.println("请输入整数"); //捕捉异常
}
System.out.println();
System.out.print("是否继续输入:"+"Yes表示继续"+" "+"No表示结束:");
flag=sc.next();
}while(flag.equals("Yes"));
}
// 参数:一个数 返回值:boolean
public static boolean isZhiShu(int n){
boolean flag=true;
if(n<2) //2是最小的质数
return false;
else{
int a=(int)Math.sqrt(n); //求一个数的平方根
for(int i=2;i<=a;i++){
if(n%i==0){ //若能被整除则说明不是质数,返回false
flag=false;
break;
}
}
return flag;
}
}
}
2.平行四边形
问题:设计一个方法,打印一个5行的平行四边形
方法一分析:第一步,从矩形方面考虑,5行的一个矩形怎样变为平行四边形;
第二步,找规律,打印空格:第一行4个空格,第二行3个空格,第三行2个空格,第四行1个空格,第五行0个空格,可以发现第 i 行有 5-i 个空格;
第三步,打印“*”
代码实现:
public class SiBianXing {
public static void main(String[] args) {
// TODO Auto-generated method stub
int row=5,col=5;
siBianxing(row,col);
}
public static void siBianxing(int row,int col){
for(int i=1;i<=row;i++){
for(int j=1;j<=row-i;j++){
System.out.print(" "); //输出空格
}
for(int j=1;j<=col;j++){
System.out.print("*");
}
System.out.println();
}
}
}
打印结果如下:
方法二分析:一个直角梯形,然后再截取左边一个叫角
代码实现:
public class Sibianxin {
public static void main(String[] args) {
// TODO Auto-generated method stub
showTixing();
System.out.println();
show();
}
// 5行的直角梯形
public static void showTixing(){
for (int line = 1; line <= 5; line++) {
for (int colum=1;colum<line+5;colum++) {
System.out.print("*");
}
System.out.println();
}
}
//5行的平行四边形
public static void show() { // 思路: 先打印出梯形, 再剔除一个角
for (int line = 1; line <= 5; line++) {
for (int colum = 1; colum <=line + 4; colum++) {
if (colum < line) {
System.out.print(" ");
}
else {
System.out.print("*");
}
}
System.out.println();
}
}
}
打印结果:
3.判断字母
问题:设计一个方法,判断一个字符是不是一个字母,若是字母大小写翻转输出,若不是直接输出“不是字母”即可
代码实现:
import java.util.Scanner;
public class PanDuanZiFu {
@SuppressWarnings("resource")
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.print("请输入一个字符:");
String s = sc.next();
char ch = s.charAt(0); //char类型在java.util.Scanner包中没有输入方法,这里使用String的charAt()方法输入字符
isEqual(ch);
}
// 参数 : 字符
public static void isEqual(char ch){
if(ch>='A' && ch<='Z' || ch>='a' && ch<='z')
{
if(ch>='A' && ch<='Z')
System.out.print("大写字母:"+ch+" "+"小写字母:"+(char)(ch+32));
else
System.out.print("大写字母:"+(char)(ch-32)+" "+"小写字母:"+ch);
}
else
System.out.print("不是字母!");
}
}
4.回文数
问题:设计一个方法,判断一个数是不是回文数
代码实现:
import java.util.Scanner;
public class HuiWenShu {
@SuppressWarnings("resource")
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.print("Please Input a long integer:");
long zh=sc.nextLong();
if(isHuiWen(zh))
System.out.println("该数是回文数!");
else
System.out.println("该数不是回文数!");
}
//参数:需要判断的数字 返回值:boolean
public static boolean isHuiWen(long zh){
long z=zh;
long zhh=0;
while(zh!=0)
{
zhh=zhh*10+zh%10;
zh=zh/10;
}
if(zhh==z)
return true;
else
return false;
}
}