上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

Java 入门基础题

guduadmin251月前

目录

1.输出一个整数的每一位

2.判定素数 

3.求最大值方法的重载 

4.输出闰年 

5.打印 X 图形 

6.数字9 出现的次数

7.计算分数的值 

8. 模拟登陆

9.使用函数求最大值 

 10.斐波那契数列


Java 入门基础题,第1张

星光不负赶路人,加油铁子们!!! 

 

 

1.输出一个整数的每一位

题目:

输出一个整数的每一位,如:123的每一位是3,2,1

思路:

本题主要考虑,如何获取一个数字的每一位:

123 % 10 = 3

123/10=12    12%10=2

12/10=1        1%10= 1

代码如下:

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();
        while(num != 0){
            int n = num % 10;
            num /= 10;
            System.out.print(n + " ");
        }
    }
}

 

2.判定素数 

题目:

给定一个数字,判定一个数字是否是素数 

  • 第1种方法,如果一个数字是素数,那么就只能整除1和自己本身。
    public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int n = scanner.nextInt();
            int i;
            for (i = 2;i < n;i++) {
                if(n%i == 0) {
                    System.out.println("n不是素数:"+n);
                    break;
                }
            }
            if(i >= n) {
                System.out.println(n + "是素数");
            }
    }
    • 第2种方式,任何一个数字n,都可以写成 n = a*b的形式。那么必然会有一个数字是小于等于n/2的。
      public static void main(String[] args) {
          Scanner scanner = new Scanner(System.in);
          int n = scanner.nextInt();
          int i;
          for (i = 2;i <= n/2;i++) {
              if(n%i == 0) {
                  //System.out.println("n不是素数:"+n);
                  break;
              }
          }
          if(i > n/2) {
              System.out.println(n + "是素数");
          }
      }
      • 第3种方式:任何一个数字n,都可以写成 n = a*b的形式。那么必然会有一个数字是小于等于根号n的。
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int n = scanner.nextInt();
            int i;
            for (i = 2;i <= Math.sqrt(n);i++) {
                if(n%i == 0) {
                    //System.out.println("n不是素数:"+n);
                    break;
                }
            }
            if(i > Math.sqrt(n)) {
                System.out.println(n + "是素数");
            }
        }

        Java 入门基础题,第2张 

        ( 注:图片来自网络,如有侵权,请联系删除 )  

         

        3.求最大值方法的重载 

        题目:

        在同一个类中定义多个方法:要求不仅可以求2个整数的最大值,还可以求3个小数的最大值?  

        思路:

        做这道题,我们首先要明白重载如何实现!!

        重载:1.方法名相同;2. 参数列表不同(数据类型,个数,顺序)3. 返回值无关

        本题可以借助Java原生类Math当中的max方法求最大值,当然也可以自己通过If else进行比较。

        Math的使用 不需要导入相关的包

        public static int max(int a,int b) {
            return Math.max(a,b);
        }
        public static double max(double a,double b,double c) {
            double m = Math.max(a,b);
            return Math.max(m,c);
        }

        也可以这样写:

        public class Main {
            public static void main(String[] args) {
                int a = 10;
                int b = 20;
                int ret1 = max(a , b);
                System.out.println(ret1);
                double c = 2.23;
                double d = 1.32;
                double e = 5.52;
                double ret2 = max(c , d , e);
                System.out.println(ret2);
            }
            
            public static int max(int x, int y){
                return x >= y ? x : y;
            }
            public static double max(double x, double y, double z){
                return x >= y ? x >= z ? x : z : y >= z ? y : z;
            }
        }

         

        4.输出闰年 

        题目:

        输出 1000 - 2000 之间所有的闰年 

        思路:

        首先要搞明白什么是闰年?简单的说,就是能够被  4整除且能被100整除  的年份;或者是能够被  400整除  的年份,即为闰年!

        public static void main(String[] args) {
                for (int year = 1000; year < 2000 ; year++) {
                    if(year %4 == 0 && year%100 != 0 || year %400==0) {
                        System.out.println(year + " 是闰年!");
                    }
                }
        }

         

        5.打印 X 图形 

        题目:X形图案_牛客题霸_牛客网 

        思路:

        假设i代表行,j代表列,当i==j 或者 i+j+1 == n,此时为星号。其余的都是空格。 

         Java 入门基础题,第3张

        import java.util.*;
        public class Main {
            
            public static void main(String[] args) {
                Scanner scan = new Scanner(System.in);
                while(scan.hasNextInt()) {
                    int n = scan.nextInt();
                
                    for(int i = 0;i < n;i++) {
                        for(int j = 0;j < n;j++) {
                            if(i == j) {
                                System.out.print("*");
                            }else if( i+j+1 == n) {
                                System.out.print("*");
                            }else{
                                System.out.print(" ");
                            }
                        }
                        System.out.println();
                    }
                }
            }
        }

         Java 入门基础题,第4张

        ( 注:图片来自网络,如有侵权,请联系删除 ) 

         

        6.数字9 出现的次数

         题目: 

        编写程序数一下 1到 100 的所有整数中出现多少个数字9

        思路:

        本题主要考察,个位的9怎么判断,十位的9怎么判断?另外99是两个9. 

        public static void main(String[] args) {
            int count = 0;
            for (int i = 1; i <= 100; i++) {
                if(i % 10 == 9) {//判断个位的9 
                    count++;
                }
                if(i/10 == 9) {
                    count++;//判断十位的9
                }
            }
            System.out.println(count);
        }

         

        7.计算分数的值 

        题目:

        计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。 

        思路: 

        1 从上述表达式可以分析出

          该表达式主要由100项,奇数项为正,偶数项为负

        2 设置一个循环从1~100,给出表达式中的每一项:1.0/i, 注意此处不能使用1,否则结果全部为0

          然后使用flag标记控制奇偶项,奇数项为正,偶数项为负,然后将所有的项相加即可

        public static void main(String[] args) {
            double sum = 0;
            int flg = 1;
            for (int i = 1; i <= 100; i++) {
                sum += 1.0/i * flg;
                flg = -flg;
            }
            System.out.println(sum);
        }

         

        8. 模拟登陆

        题目:

        编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序  

        思路:

        本题注意考察,字符串怎么比较相同?使用方法equals。

        public static void main11(String[] args) {
        	Scanner scanner = new Scanner(System.in);
        	int count = 3;
        	while (count != 0) {
        		System.out.println("请输入你的密码:");
        		String password = scanner.nextLine();
        		//if(password == "123") { 这个判断相等是错误的,具体原因后续String章节进行讲解
        		
                if(password.equals("123")) {
        			System.out.println("登录成功!");
        			break;
        		}else {
        			count--;
        			System.out.println("你还有"+count+" 次机会!");
        		}
        	}
        }

         Java 入门基础题,第5张

         ( 注:图片来自网络,如有侵权,请联系删除 ) 

         

        9.使用函数求最大值 

        题目:

        创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3。

        ​ 要求:

        在max3这个函数中,调用max2函数,来实现3个数的最大值计算

        思路:

        本题比较简单,重点在如何求出两个数的最大值 

        public static int max2(int a,int b) {
        	return a > b ? a:b;
        }
        public static int max3(int a,int b,int c) {
        	int max = max2(a,b);
        	return max > c ? max : c;
        }
        public static void main(String[] args) {
        	System.out.println(max3(2, 5, 1));
        }

         

         10.斐波那契数列

        题目:

        求斐波那契数列的第n项。(迭代实现) 

        思路:

        斐波那契数列定义为:1 1 2 3 5 8 13 21 我们可以看到,从第3项开始,都等于前一项+前一项的前一项的和。3 = 1+2 、5 = 2+3 、13 = 5+8 。

        我们可以先定义n1保存第一项的值,n2保存第2项的值,n3保存第3项的值。

        每次算一个n3,就同步更新n1和n2的值。

        /**
           * 求菲薄那切数列的第n项
           * @param n
           * @return
           */
        import java.util.Scanner;
        //求斐波那契数列的第n项。(迭代实现)
        public class Main {
            public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                int n = sc.nextInt();
                System.out.println(fib(n));
            }
            public static int fib(int n){
                if(n == 1 || n == 2){
                    return 1;
                }
                int n1 = 1;  // 1 1 2 3 5 8
                int n2 = 1;
                int n3 = 0;
                for(int i = 3;i <= n; i++){
                    n3 = n1 + n2;
                    n1 = n2;
                    n2 = n3;
                }
                return n3;
            }
        }

        Java 入门基础题,第6张

        ( 注:图片来自网络,如有侵权,请联系删除 )  

        希望对大家有所帮助,感谢观看!!!

         

网友评论

搜索
最新文章
热门文章
热门标签
 
 梦见自己掉牙预示着什么  十二生肖运程  已婚女人梦到大量现金