Java基础知识之典型范例二

简介: Java基础知识之典型范例二

Java基础知识


之典型范例二


文 | 莫若吻    


1.实现九九乘法表


1*1=1

1*2=2  2*2=4

1*3=3  2*3=6  3*3=9

1*4=4  2*4=8  3*4=12 4*4=16

1*5=5  2*5=10 3*5=15 4*5=20  5*5=25

1*6=6  2*6=12 3*6=184*6=24  5*6=30  6*6=36

1*7=7  2*7=14 3*7=21 4*7=28  5*7=35  6*7=42  7*7=49

1*8=8  2*8=16 3*8=24 4*8=32  5*8=40  6*8=48  7*8=56  8*8=64

1*9=9  2*9=18 3*9=27 4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

代码如下:

class  ForTest
{
  public static void main(String[] args) 
  {
    /*九九乘法表
    外循环控制行数,x 同时代表每一行乘法中变化的那个数字
    内循环控制每一列,y 同时代表每一列乘法中最前面不变的那个数字
    \t 转义字符,制表符。
    */
    for(int x=1;x<=9;x++) 
    {
      for(int y=1;y<=x;y++)
      {
        System.out.print(y+"*"+x+"="+(x*y)+"\t");
      }
      System.out.println();
    }
  }
}

2.实现水仙花数


输出水仙花数:规律:一个整数=它的个位数的立方+十位数的立方+百位数的立方。

eg:153=1*1*1+5*5*5+3*3*3


代码如下:

class ForTest1
{
  public static void main(String[] args) 
  {
     /* 输出水仙花数: 规律:一个整数=它的个位数的立方+十位数的立方+百位数的立方
    获取整数的每一位上的数字
    个位:153%10=3
    十位:153/10%10=5
    百位:153/100%10=1
    */
    System.out.println("输出三位水仙花数:");
    for(int num=100;num<999;num++)
    {
      int g=num%10;
      int s=num/10%10;
      int b=num/100%10;
      int sum=g*g*g+s*s*s+b*b*b;
      if(sum==num)
      {
      System.out.print(num+" ");
      }
    }
  }
}

3.三角数字阵示例


输出n=6的三角数字阵

1

2  3

4  5  6

7  8  9  10

11 12 13 14 15

16 17 18 19 20 21

代码如下:

class ForTest1
{
  public static void main(String[] args) 
  {
    int z=0; //定义变量,代表不断变化的数字
    for(int n=1;n<=6;n++) //外循环代表行数
    {
      for(int x=1;x<=n;x++)//内循环控制每一列
      {
        z++;
        System.out.print(z+"\t"); 
      }
      System.out.println();
    }
  }
}

4.输出特殊的五位数示例


请输出满足这样条件的五位数。

个位=万位

十位=千位

个位+十位+千位+万位=百位


代码如下:

class ForTest1
{
  public static void main(String[] args) 
  {
    System.out.println("满足条件的五位数:");
    for(int num=10000;num<99999;num++)
    {
      int g=num%10;       //获取个位数上的数字
      int s=num/10%10;    //获取十位数上的数字
      int b=num/100%10;   //获取百位数上的数字
      int q=num/1000%10;  //获取千位数上的数字
      int w=num/10000%10; //获取万位数上的数字
      if(g==w && s==q && b==g+s+q+w)
      System.out.print(num+" ");
    }
  }
}

5.数组排序示例——冒泡排序与选择排序


给定一个数组,进行排序。使用冒泡排序和选择排序。

代码如下:

class Test 
{
  public static void main(String[] args) 
  {
    int[] array=new int[]{4,6,90,34,49,20,11};
    System.out.println("打印前数组元素为:");
    printArr(array); //调用输出数组方法
    System.out.println("\n"+"数组按冒泡排序从大到小:");
    getArr(array);  //调用排序方法
    printArr(array);
    System.out.println("\n"+"数组按选择排序从小到大:");
    getArray(array);
    printArr(array);
  }
   //位置互换方法
  public static void sort(int[] arr,int a,int b){
    int temp=arr[a];
    arr[a]=arr[b];
    arr[b]=temp;
  }
  //选择排序
  public static void getArray(int[] arr){
    for(int x=0;x<arr.length-1;x++)
    {
      for(int y=x+1;y<arr.length;y++)
      {
        if(arr[x]>arr[y])
          sort(arr,x,y);
      }
    }
  }
  //冒泡排序
  public static void getArr(int[] arr){
    for(int x=0;x<arr.length-1;x++)
    {
      for(int y=0;y<arr.length-x-1;y++)
      {
        if(arr[y]<arr[y+1])
          sort(arr,y,y+1);
      }
    }
  }
  //输出数组
  public static void printArr(int[] arr){
    System.out.print("[");
    for(int x=0;x<arr.length;x++)
    {
      if(x!=arr.length-1)
        System.out.print(arr[x]+",");
      else
        System.out.print(arr[x]+"]");
    }
  }
}

冒泡排序与选择排序的思想和区别:


冒泡排序的思想为:每一次排序过程,通过相邻元素的交换,将当前没有排好序中的最大(小)移到数组的最右(左)端。


选择排序的思想很直观:每一次排序过程,我们获取当前没有排好序中的最大(小)的元素和数组最右(左)端的元素交换,循环这个过程即可实现对整个数组排序。

冒泡排序和选择排序是排序算法中比较简单和容易实现的算法。

同样数据的情况下,两种算法的循环次数是一样的,但选择排序只有0到1次交换,而冒泡排序只有0到n次交换 。而影响我们算法效率的主要部分是循环和交换,显然,次数越多,效率就越差。选择排序的平均时间复杂度比冒泡排序的稍低。所以相比较而言选择排序效率会更高一些。


目录
相关文章
|
8月前
|
安全 Java 编译器
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
61 1
|
7月前
|
供应链 安全 Java
软件架构一致性问题之通过软件供应链管理提升研发体验如何解决
软件架构一致性问题之通过软件供应链管理提升研发体验如何解决
67 0
|
9月前
|
Java 调度 开发者
Java中的多线程编程:基础知识与实践
【5月更文挑战第29天】 在现代软件开发中,多线程编程是一个不可忽视的领域。特别是在Java这种广泛使用的编程语言中,掌握多线程的概念和技术对于开发高效、响应迅速的应用程序至关重要。本文将深入探讨Java多线程的核心概念、实现机制以及常见问题的解决方案。我们将从基础出发,逐步揭示如何通过多线程提升程序性能,并且讨论并发编程中的挑战和解决策略。文章的目的是为开发者提供一个清晰的多线程编程指南,帮助他们在实际项目中有效地应用这些知识。
49 3
|
9月前
|
Java 开发者
Java中的多线程编程:基础知识与实践
【5月更文挑战第26天】 在现代计算机科学中,多线程编程是一个复杂且强大的概念。Java作为一种广泛使用的编程语言,其对多线程的支持使得开发者能够创建出更为复杂、高效和响应迅速的应用程序。本文将深入探讨Java中的多线程编程,从基础概念到实际编程技巧,为读者提供全面的理解和实践指导。
|
9月前
|
监控 IDE Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第30天】 在现代软件开发中,多线程编程是提高应用程序性能和响应能力的关键。特别是在Java这样的多平台、多用途的编程语言中,掌握多线程技术至关重要。本文旨在为读者提供有关Java多线程编程的全面介绍,从基本概念到高级应用技巧,帮助初学者和有经验的开发者理解并有效使用多线程。文章不仅涉及基础理论,还包括代码示例和最佳实践,确保读者能够将知识应用于实际项目中。
|
9月前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第28天】 在现代计算机科学中,多线程编程是一个重要的概念,它允许程序同时执行多个任务。在Java中,多线程编程是通过创建并管理线程来实现的。本文将介绍Java中多线程编程的基础知识,包括线程的概念、创建和控制线程的方法,以及线程同步和通信的相关技术。通过阅读本文,读者将对Java中的多线程编程有一个全面的了解,并能在实际编程中应用这些知识。
|
9月前
|
安全 Java 数据安全/隐私保护
Java中的多线程编程:基础知识与实践
【5月更文挑战第24天】 在现代软件开发中,多线程编程是提升应用性能和响应速度的关键技术之一。Java 作为一种广泛使用的编程语言,其内置的多线程功能为开发者提供了强大的并发处理能力。本文将深入探讨 Java 多线程的基础概念、实现机制以及在实际开发中的应用。我们将从线程的创建和管理出发,逐步讲解同步机制、死锁问题以及如何利用高级并发工具有效地构建稳定、高效的多线程应用。通过理论结合实例的方式,旨在帮助读者掌握 Java 多线程编程的核心技能,并在实际项目中灵活运用。
|
9月前
|
安全 Java
Java基础知识面试总结(全面,实时更新)
Java基础知识面试总结(全面,实时更新)
|
9月前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第19天】多线程编程是Java中的一个重要概念,它允许程序员在同一时间执行多个任务。本文将介绍Java多线程的基础知识,包括线程的创建、启动和管理,以及如何通过多线程提高程序的性能和响应性。
|
9月前
|
Java
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结