简单的Java 编程题

**随机排序
 一个0-9的数据 要求每次调用函数排序都不相同**
import java.util.Arrays;
import java.util.Random;

public class 随机排序 {

  public static void main(String[] args) {
      text();


  }

  private static void text() {
      int a[]={0,1,2,3,4,5,6,7,8,9};
      int temp;
      for(int i=0;i<a.length;i++){
          double random=Math.random()*10;
  
          int ranitn =(int)random;
          temp=a[i];
          a[i]=a[ranitn];
          a[ranitn]=temp;

      }
      System.out.println(Arrays.toString(a));
  }

}

2.输出 a-b之间的随机数

import java.util.Scanner;

public class a到b之间随机数

{
    public static void main(String[] args) {
        System.out.println("输入a,b2个数");
        Scanner sc =new Scanner(System.in);
        int a=sc.nextInt();
        int b=sc.nextInt();
        System.out.println("随机生成a-b之间随机数");
        double c=Math.random()*(b-a)+a;
        System.out.println(Math.floor(c));
    }
}

3,String常用的方法

import java.util.Arrays;

public class String常用方法练习 {


    public static void main(String[] args) {
        String test="abcdef";
        int [] paixun={1,2,5,4,3,6};

        //分割String
        String[] split = test.split("c");

        System.out.println(Arrays.toString(split));
        //找出e在字符串出现的索引位置
        System.out.println( test.indexOf("e"));

        //将字符串变成字符数组
        char [] chars = test.toCharArray();

        //将数组排序
        Arrays.sort(paixun);
        System.out.println(Arrays.toString(paixun));

        //获取字符串的第I个字符
        System.out.println("charat="+test.charAt(2));

        //截取字符存从A,B
        System.out.println(test.substring(0,2));

        //String转int
        Integer.valueOf(test);
        //int 转String
        String.valueOf(123);


    }
}

4.常见的排序

import java.util.Arrays;

public class 常见排序 {
    public static void main(String[] args) {
        int []a={10,1,4,6,7,8,9,2};
      // ChaRuPX(a);
      // XuanZhePX(a);
        //MaopaoPX(a);
        KuaiSuPX(a,0,a.length-1);
        System.out.println("快速排序"+Arrays.toString(a));


    }
    /*
    不熟
    插入排序
    原理: 从第二个数开始和前面的数比较,小于的前面的数就换位置否则不换
     */

    public static void ChaRuPX(int[] a){
        for(int i=1;i<a.length;i++){
            int temp=a[i];//待插入的数
            int j;
            for( j = i;j > 0 && temp <a[j-1];j--){

                a[j] = a[j-1];	//前一个较大的元素换到 j 下标位置
            }
            a[j] = temp;//上述条件不满足时的 j 下标位置就是temp适合的位置,temp保存元素插入到此
        }
        System.out.println("插入排序"+Arrays.toString(a));

    }
    public static  void XuanZhePX(int[] a){
        /*
        选择排序
        原理 循环 每次将最小的放在最前
         */
        for(int i=0;i<a.length;i++){
            //最小值
            int min=a[i];
            //最小数的下表
            int indexJ=i;
            int temp;
            for(int j=i+1;j<a.length;j++){
                if(min>a[j]) {
                    min = a[j];
                    indexJ = j;
                }
            }
            temp=a[i];
            a[i]=min;
            a[indexJ]=temp;


        }
        System.out.println("选择排序"+Arrays.toString(a));
    }

    public static  void MaopaoPX(int[] a) {
        /*
        冒泡排序
        第一个元素开始,与下一个元素比较,若大于则交换位置,小于则不动,所以会经过N-1趟排序,
        每一趟会把大的元素沉底,小的元素浮上来,所以叫冒泡排序。
         */

        int temp;
        int j;

        for (int i = 0; i < a.length ; i++) {    //n个数要循环n-1趟
            for (j = 0; j < a.length - i - 1; j++) {
                if (a[j] > a[j + 1]) {    //比后一个元素大,就交换两数位置
                    temp = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = temp;
                }
            }
        }


            System.out.println("冒泡排序" + Arrays.toString(a));

    }

 /*
 快速排序
  */
    public static  void KuaiSuPX(int[] a,int star,int end) {
        if (star >= end)

            return;//递归出口

        int i=star;
        int j=end;
        int temp=a[star];//基准数
        while(i!=j){
            while(a[j]>=temp&& j > i){j--;}
            while(a[i]<=temp&& i < j){i++;}
                int s=a[i];
                a[i]=a[j];
                a[j]=s;


        }
        if(i==j){
            a[star]=a[i];
            a[i]=temp;

        }
        KuaiSuPX(a, star, i - 1);
        KuaiSuPX(a, i+1, end);


    }



}

4.打印水仙花

public class 打印水仙花数 {
    /*
    打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,
    其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
     */
    public static void main(String[] args) {
        for(int i=100;i<1000;i++){
            int ge=i%10;
            int shi=i/10%10;
            int bai=i/100;
            if(i==(Math.pow(ge,3)+Math.pow(shi,3)+Math.pow(bai,3))){
                System.out.println(i);

            }
        }
    }
}

5.文件读取

import java.io.*;
import java.lang.reflect.Array;
import java.util.Arrays;

public class 文件读取 {

    public static void main(String[] args) throws IOException {
        byte []by=new byte[1024];
        int num=0;
        FileInputStream input =new FileInputStream("D:\\test\\test.docx");
        InputStreamReader isr =new InputStreamReader(input);

        BufferedReader br= new BufferedReader(isr);

        FileOutputStream out =new FileOutputStream("test");
        String line =null;

        while((line=br.readLine())!=null) {
            System.out.println(line);
        }
        br.close();
    }
}



6.斐波那契数列

import java.util.Scanner;

/*题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?

 */

public class 斐波那契数列 {
    public static void main(String[] args) {

        System.out.println("请输入月数:");
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = run(n) ;	//递推公式
        System.out.println("第"+ n + "个月有" + m + "对兔子");
        scanner.close();
    }
    public static int run(int n) {		//递归方法
        if(n==1||n==2){     return 1;}

        else
        { return run(n-1)+run(n-2);}	//递归调用
    }
}

7.素数判断

public class 素数判断 {
    /*
    题目:判断101-200之间有多少个素数,并输出所有素数。
     */
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 101; i < 200; i++) {
            int shu = issushu(i);
            if (shu == 1) {
                System.out.println("素数" + i);
                ++sum;
            }
        }
        System.out.println("总数" + sum);
    }

    private static int issushu(int n) {
        for (int i = 2; i < n; i++) {
            if (n % i == 0) {
                return 1;
            }
        }
        return 0;
    }
}
发布了78 篇原创文章 · 获赞 5 · 访问量 7382

猜你喜欢

转载自blog.csdn.net/weixin_41930050/article/details/102423150