zoukankan      html  css  js  c++  java
  • Java基础算法

    i++;
    ++i;

    i--;
    --i;

    int a=5;
    int b=a++;++放在后面,表示先使用a的值,a再加1
    b=5,a=a+1,a=6

    int c=5;
    int d=++c;++放在前面,表示先将c+1,再将值赋给d
    c=c+1,c=6,d=c,d=6

    基础算法

    /*(挑战题)定义一个二维数组,int[3][4],要求是循环输入12个整数,放入到数组中,然后使用嵌套循环找到这个数组中的最大值。
    */
    import java.util.*;
    public class D{
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    int[][] arr=new int[3][4];
    for(int i=0;i<arr.length;i++){
    System.out.println("请输入数");
    for(int j=0;j<4;j++){

    arr[i][j]=input.nextInt();
    }

    }
    int max=arr[0][0];
    for(int i=0;i<arr.length;i++){

    for(int j=0;j<4;j++){
    if(max<arr[i][j]){
    max=arr[i][j];
    }

    }

    }
    System.out.print(max);
    }
    }

    /*

    6、(挑战题)定义一个长度为10的整型数组,循环输入10个整数。然后判断这个数组中有几个偶数,再定义一个正好能存放这几个偶数的数组,将上一个数组中的所有偶数复制过来。最后循环输出这些偶数。

    */
    import java.util.*;
    public class C{
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    int[] arr=new int[10];
    for(int i=0;i<arr.length;i++){
    System.out.println("请输入第"+(i+1)+"个整数");
    arr[i]=input.nextInt();
    }
    int sum=0;

    for(int i=0;i<arr.length;i++){
    if(arr[i]%2==0){
    sum++;
    }
    }

    int[] brr=new int[sum];
    int k=0;
    for(int i=0;i<arr.length;i++){
    if(arr[i]%2==0){
    brr[k]=arr[i];
    k++;
    }
    }

    for(int i=0;i<brr.length;i++){
    System.out.println(brr[i]);
    }

    }

    }

    //判断一个数是否为质数(素数,只能被1和本身整除的数叫质数)
    import java.util.*;
    public class ZhiShu{
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    System.out.println("请输入一个整数");
    int t=input.nextInt();//6
    boolean flag=true;//假设这个数是质数
    for(int i=2;i<t;i++){
    if(t%i==0){
    flag=false;
    System.out.println(t+"不是质数");
    break;
    }
    }
    if(flag==true){
    System.out.println(t+"是质数");
    }
    }
    }


    /*

    3、定义一个二维数组,用来记录3个学生的java,c#,sql三门功课的成绩,二维数组的一行记录一个人的成绩,要求循环输入,最后输出格式如下:
    java c# sql
    第1名学生 89 79 98
    第2名学生 99 80 100
    第3名学生 79 99 87

    */


    import java.util.*;

    public class E{
    public static void main(String[] args){
    int[][] arr=new int[3][3];

    Scanner input= new Scanner(System.in);

    for(int i=0;i<arr.length;i++){
    System.out.println("请输入第"+(i+1)+"个学生的java成绩");
    arr[i][0]=input.nextInt();
    System.out.println("请输入第"+(i+1)+"个学生的c#成绩");
    arr[i][1]=input.nextInt();
    System.out.println("请输入第"+(i+1)+"个学生的sql成绩");
    arr[i][2]=input.nextInt();
    }

    System.out.println(" java c# sql");

    for(int i=0;i<arr.length;i++){
    System.out.print("第"+(i+1)+"个学生 ");
    for(int j=0;j<3;j++){
    System.out.print(arr[i][j]+" ");
    }
    System.out.println();
    }
    }
    }

    /*


    3.(挑战题)计算1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10=?。

    */

    public class C{
    public static void main(String[] args){
    double sum=0;
    for(int i=1;i<=10;i++){
    sum=sum+1/(double)i;
    }
    System.out.println(sum);
    }
    }


    public class E{
    public static void main(String[] args){
    /*int i=1;


    while(i<=100){
    System.out.println(i);
    i++;
    }
    */
    /*
    do{
    System.out.println(i);
    i++;
    }while(i<=100);
    */

    for(int i=1;i<=100;i++){
    System.out.println(i);
    }

    }
    }


    public class H{
    public static void main(String[] args){
    for(;;){
    System.out.println("I love you");
    }
    }

    }


    /*
    题目:从1不断的累加,最多加到100,但如果你的累加结果
    正好大于1000时,要求也结束这个循环。问这个时候正好加
    到了几。
    */


    public class J{
    public static void main(String[] args){
    /*int i=1;
    int sum=0;
    while(i<=100){
    sum=sum+i;
    if(sum>1000){
    System.out.println("加到了"+i);
    break;
    }
    i++;
    }*/

    int sum=0;
    for(int i=1;i<=100;i++){
    sum=sum+i;
    if(sum>1000){
    System.out.println("加到了"+i);
    break;
    }

    }
    }
    }

    /*
    从1累加到100,但如果要累加的数据能被3整除,
    并且也能被7整数,那么就不要累加这个数。最后输出结果。
    */

    public class C{
    public static void main(String[] ars){
    int sum=0;
    for(int i=1;i<=100;i++){
    if(i%3==0&&i%7==0){
    continue;
    }
    sum=sum+i;

    }
    System.out.println(sum);

    }
    }
    /*
    *******
    *******
    *******
    *******
    *******
    */

    public class F{
    public static void main(String[] args){
    for(int i=1;i<=5;i++){//i控制行数
    for(int j=1;j<=7;j++){//j控制列数
    System.out.print("*");
    }
    System.out.println();
    }
    }

    }
    /*

    *
    ***
    *****
    *******
    *********
    ***********
    *************

    */

    public class G{
    public static void main(String[] args){

    int x=1;//把第一行的星星数写出来
    for(int i=1;i<=7;i++){//控制 行数
    for(int j=1;j<=x;j++){//控制星星的列数
    System.out.print("*");
    }
    System.out.println();//换行
    x=x+2;//把下一行要打的星星的个数算出来
    }

    }
    }

    /*

    *
    *
    *
    *
    *
    *
    *
    *

    */


    public class H{
    public static void main(String[] args){
    int k=0;
    int x=1;

    for(int i=1;i<=8;i++){
    for(int j=1;j<=k;j++){
    System.out.print(" ");
    }
    for(int z=1;z<=x;z++){
    System.out.print("*");
    }
    System.out.println();
    k++;

    }
    }
    }


    /*
    *
    **
    ***
    ****
    *****
    ******
    *******

    */

    public class I{
    public static void main(String[] args){
    int k=6;
    int x=1;
    for(int i=1;i<=7;i++){
    for(int j=1;j<=k;j++){
    System.out.print(" ");
    }
    for(int z=1;z<=x;z++){
    System.out.print("*");
    }
    System.out.println();
    k--;
    x++;
    }
    }

    }

    /*

    *
    ***
    *****
    *******
    *********
    ***********

    */

    public class J{
    public static void main(String[] args){
    int k=5;
    int x=1;
    for(int i=1;i<=6;i++){
    for(int j=1;j<=k;j++){
    System.out.print(" ");
    }
    for(int z=1;z<=x;z++){
    System.out.print("*");
    }
    System.out.println();
    k--;
    x+=2;//x=x+2;
    }
    }
    }

    /*
    1*1=1
    1*2=2 2*2=4
    1*3=3 2*3=6 3*3=9
    ……
    1*9=9 2*9=18 …… 9*9=81
    */

    public class K{
    public static void main(String[] args){
    //int x=1;
    for(int i=1;i<=9;i++){
    for(int j=1;j<=i;j++){
    System.out.print(j+"*"+i+"="+i*j+" ");
    }
    System.out.println();
    //x++;
    }
    }
    }


    /*
    *
    ***
    *****
    *******
    *********
    ***********
    *********
    *******
    *****
    ***
    *
    */


    public class L{
    public static void main(String[] args){
    int k=5;
    int x=1;

    int kb=-1;
    int xb=2;
    for(int i=1;i<=11;i++){
    for(int j=1;j<=k;j++){
    System.out.print(" ");
    }
    for(int z=1;z<=x;z++){
    System.out.print("*");
    }
    System.out.println();
    k=k+kb;
    x=x+xb;
    if(i==5){
    kb=-kb;
    xb=-xb;
    }
    }
    }

    }

    /*

    *
    * *
    * *
    * *
    * *
    * *
    * *
    * *
    * *
    * *
    *

    */

    public class M{
    public static void main(String[] args){
    int k=5;
    int x=1;

    int kb=-1;
    int xb=2;
    for(int i=1;i<=11;i++){
    for(int j=1;j<=k;j++){
    System.out.print(" ");
    }
    for(int z=1;z<=x;z++){
    if(z!=1&&z!=x){
    System.out.print(" ");
    continue;
    }
    System.out.print("*");
    }
    System.out.println();
    k=k+kb;
    x=x+xb;
    if(i==5){
    kb=-kb;
    xb=-xb;
    }
    }
    }
    }


    /*
    ******
    ******
    ******
    ******

    */

    public class B{
    public static void main(String[] args){
    int k=3;//第一行的空格数
    int x=6;//第一行的星星数
    for(int i=1;i<=4;i++){//外层循环的i控制行数
    for(int j=1;j<=k;j++){
    System.out.print(" ");//打完一行的空格
    }
    for(int z=1;z<=x;z++){
    System.out.print("*");//打完一行的星星
    }
    System.out.println();
    k--;


    }
    }
    }


    /*
    输入某人成绩(百分制)。如成绩在90-100之间,则输出优秀,如成绩在80-89之间,则输出良好,如成绩在60-79之间,则输出及格,60分以下则输出不及格。提示:用switch语句实现。
    */

    import java.util.*;
    public class D{
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    int a=input.nextInt();
    int t=a/10;

    switch(t){
    case 10:

    case 9:
    System.out.println("优秀");
    break;

    case 8:
    System.out.println("良好");
    break;

    case 7:
    case 6:
    System.out.println("及格");
    break;

    default:
    System.out.println("不及格");
    break;

    }


    }
    }

    /*
    2.输入任意一个整数,判断这个整数是不是质数?
    */

    import java.util.*;
    public class Zhishu{
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    System.out.println("请输入1个整数");
    int t=input.nextInt();
    boolean flag=true;/*
    for(int i=2;i<t;i++){
    if(t%i==0){
    flag=false;
    System.out.println("这个数不是质数");
    }

    }
    if(flag==true){
    System.out.println("这个数是质数");
    }
    */
    /*int c=0;
    for(int i=1;i<=t;i++){

    if(t%i==0){
    c++;
    }

    }
    if(c==2){
    System.out.println("这个数是质数");
    }*/

    int j;
    for(j=2;j<=t/2;j++) {
    if(t%j==0) {
    break;
    }
    }
    if (j>t/2) {
    System.out.println(""+t+"是素数");
    }

    }
    }

    import java.util.*;
    public class G{
    public static void main(String[] args){
    //int[] arr={10,3,6,20,5};
    Scanner input=new Scanner(System.in);

    int[] arr=new int[5];

    for(int i=0;i<arr.length;i++){
    System.out.println("请输入第"+(i+1)+"个整数");
    arr[i]=input.nextInt();
    }
    int max=arr[0];
    for(int i=1;i<arr.length;i++){
    if(max<arr[i]){
    max=arr[i];
    }
    }
    System.out.println(max);
    }

    }

    //判断一个数是否为质数(素数,只能被1和本身整除的数叫质数)
    import java.util.*;
    public class ZhiShu{
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    System.out.println("请输入一个整数");
    int t=input.nextInt();//6
    boolean flag=true;//假设这个数是质数
    for(int i=2;i<t;i++){
    if(t%i==0){
    flag=false;
    System.out.println(t+"不是质数");
    break;
    }
    }
    if(flag==true){
    System.out.println(t+"是质数");
    }
    }
    }


    //求数组的最大值
    import java.util.*;
    public class C{
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);

    int[] arr=new int[3];
    for(int i=0;i<arr.length;i++){
    System.out.println("请输入第"+(i+1)+"个整数");
    arr[i]=input.nextInt();
    }

    int max=arr[0];
    int min=arr[0];
    for(int i=1;i<arr.length;i++){
    if(max<arr[i]){
    max=arr[i];
    }
    if(min>arr[i]){
    min=arr[i];
    }

    }
    System.out.println("最大值是"+max);
    System.out.println("最小值是"+min);
    }
    }

    //查找算法
    import java.util.*;
    public class D{
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    String[] names={"小红","小强","凤姐","春哥","马姐"};
    System.out.println("请输入您要找的美女");
    String name=input.next();
    boolean flag=false;//假设找不到这个人
    for(int i=0;i<names.length;i++){
    if(name.equals(names[i])){
    flag=true;
    System.out.println("找到了,她在"+i+"号房间");
    break;

    }
    }
    if(flag==false){
    System.out.println("没有这个人!");
    }

    }
    }


    /*
    3、插入算法:要求有一个有序的数组,在这个有序的数组中
    插入一个新的数据,要求插入后还是有序的。
    示例:有一个数据int[] arr={3,8,10,15,21,33,0};现在要求
    插入一个12的数据,最后要求还是有序的。
    */
    import java.util.*;
    public class E{
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    int[] arr={3,8,10,15,21,33,0};
    System.out.println("请输入一个整数");
    int a=input.nextInt();
    arr[6]=a;

    for(int i=arr.length-2;i>=0;i--){
    if(arr[i]>arr[i+1]){
    int t=arr[i];
    arr[i]=arr[i+1];
    arr[i+1]=t;
    }else{
    break;
    }

    }

    for(int i=0;i<arr.length;i++){
    System.out.print(arr[i]+" ");
    }

    }
    }


    /*
    3、插入算法:要求有一个有序的数组,在这个有序的数组中
    插入一个新的数据,要求插入后还是有序的。
    示例:有一个数据int[] arr={3,8,10,15,21,33,0};现在要求
    插入一个12的数据,最后要求还是有序的。
    */
    import java.util.*;
    public class E{
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    int[] arr={3,8,10,15,21,33,0};
    System.out.println("请输入一个整数");
    int a=input.nextInt();
    arr[6]=a;

    for(int i=arr.length-2;i>=0;i--){
    if(arr[i]>arr[i+1]){
    int t=arr[i];
    arr[i]=arr[i+1];
    arr[i+1]=t;
    }else{
    break;
    }

    }

    for(int i=0;i<arr.length;i++){
    System.out.print(arr[i]+" ");
    }

    }
    }


    /*

    6、(挑战题)定义一个长度为10的整型数组,循环输入10个整数。然后判断这个数组中有几个偶数,再定义一个正好能存放这几个偶数的数组,将上一个数组中的所有偶数复制过来。最后循环输出这些偶数。

    */
    import java.util.*;
    public class C{
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    int[] arr=new int[10];
    for(int i=0;i<arr.length;i++){
    System.out.println("请输入第"+(i+1)+"个整数");
    arr[i]=input.nextInt();
    }
    int sum=0;

    for(int i=0;i<arr.length;i++){
    if(arr[i]%2==0){
    sum++;
    }
    }

    int[] brr=new int[sum];
    int k=0;
    for(int i=0;i<arr.length;i++){
    if(arr[i]%2==0){
    brr[k]=arr[i];
    k++;
    }
    }

    for(int i=0;i<brr.length;i++){
    System.out.println(brr[i]);
    }

    }

    }


    /*
    4、定义一个长度为6的整型数组,初始化为{6,9,10,15,20,0};的一个有序数列,现在再输入一个整数,插入到此数组中去。
    */
    import java.util.*;
    public class D{
    public static void main(String[] args){
    int[] arr={6,9,10,15,20,0};
    Scanner input=new Scanner(System.in);
    System.out.println("请输入一个整数");
    int t=input.nextInt();
    arr[arr.length-1]=t;

    for(int i=arr.length-2;i>=0;i--){
    if(arr[i]>arr[i+1]){
    int temp;
    temp=arr[i];
    arr[i]=arr[i+1];
    arr[i+1]=temp;
    }else{
    break;
    }
    }

    for(int i=0;i<arr.length;i++){
    System.out.println(arr[i]);
    }

    }

    }

    public class E{
    public static void main(String[] args){
    int[] arr={3,5,10,2,65};

    int n=arr.length/2;//交换的次数

    for(int i=0;i<n;i++){
    //arr[0]---arr[4]交换 5-1-0
    //arr[1]---arr[3]交换
    int t;
    t=arr[i];
    arr[i]=arr[arr.length-1-i];
    arr[arr.length-1-i]=t;
    }

    for(int i=0;i<arr.length;i++){
    System.out.println(arr[i]);
    }
    }

    }


    import java.util.*;
    //冒泡排序(就是多次把较大值往后移)
    public class F{
    public static void main(String[] args){
    int[] arr={20,3,6,48,7,100,66};
    for(int i=1;i<arr.length;i++){//i控制比较的轮数
    for(int j=0;j<arr.length-1;j++){//j控制每一轮比较的次数
    if(arr[j]>arr[j+1]){
    int t;
    t=arr[j];
    arr[j]=arr[j+1];
    arr[j+1]=t;
    }

    }
    }

    //Arrays.sort(arr);
    for(int i=0;i<arr.length;i++){
    System.out.println(arr[i]);
    }
    }

    }


    /*
    11、声明一个整形的数组,循环输入5个整数,将这5个整数排序。
    */
    import java.util.*;
    //冒泡排序
    public class A{
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    int[] arr=new int[5];
    for(int i=0;i<arr.length;i++){
    arr[i]=input.nextInt();
    }

    for(int i=1;i<arr.length;i++){//i控制比较的轮数
    for(int j=0;j<arr.length-i;j++){//j控制每一轮比较的次数
    if(arr[j]>arr[j+1]){
    int temp;
    temp=arr[j];
    arr[j]=arr[j+1];
    arr[j+1]=temp;
    }
    }
    }

    for(int i=0;i<arr.length;i++){
    System.out.print(arr[i]+" ");
    }
    }
    }


    //给一个数组做反序。
    public class B{
    public static void main(String[] args){
    int[] arr={222,333,555,777,888};

    int n=arr.length/2;
    for(int i=0;i<n;i++){
    //arr[0]---arr[4]
    int temp;
    temp=arr[i];
    arr[i]=arr[arr.length-1-i];
    arr[arr.length-1-i]=temp;
    }
    for(int i=0;i<arr.length;i++){
    System.out.println(arr[i]);
    }
    }
    }

    import java.util.*;
    //13、(挑战题)、求1-100以内所有的质数
    public class C{
    public static void main(String[] args){
    for(int i=2;i<100;i++){
    boolean flag=true;//假设这个数是质数
    for(int j=2;j<i;j++){
    if(i%j==0){
    flag=false;
    //System.out.println(i+"不是质数");
    break;

    }
    }
    if(flag==true){
    System.out.println(i+"是质数");
    }
    }

    }

    }

    /*声明一个二维数组,3行2列,循环输入6个人的成绩,并循环输出。*/
    import java.util.*;
    public class D{
    public static void main(String[] args){
    int[][] arr=new int[3][2];
    Scanner input=new Scanner(System.in);
    for(int i=0;i<arr.length;i++){
    for(int j=0;j<2;j++){
    System.out.println("请输入第"+i+"行,第"+j+"列的数");
    arr[i][j]=input.nextInt();
    }
    }

    for(int i=0;i<arr.length;i++){
    for(int j=0;j<2;j++){
    System.out.print(arr[i][j]+" ");
    }
    System.out.println();
    }
    }

    }


    /*

    3、定义一个二维数组,用来记录3个学生的java,c#,sql三门功课的成绩,二维数组的一行记录一个人的成绩,要求循环输入,最后输出格式如下:
    java c# sql
    第1名学生 89 79 98
    第2名学生 99 80 100
    第3名学生 79 99 87

    */


    import java.util.*;

    public class E{
    public static void main(String[] args){
    int[][] arr=new int[3][3];

    Scanner input= new Scanner(System.in);

    for(int i=0;i<arr.length;i++){
    System.out.println("请输入第"+(i+1)+"个学生的java成绩");
    arr[i][0]=input.nextInt();
    System.out.println("请输入第"+(i+1)+"个学生的c#成绩");
    arr[i][1]=input.nextInt();
    System.out.println("请输入第"+(i+1)+"个学生的sql成绩");
    arr[i][2]=input.nextInt();
    }

    System.out.println(" java c# sql");

    for(int i=0;i<arr.length;i++){
    System.out.print("第"+(i+1)+"个学生 ");
    for(int j=0;j<3;j++){
    System.out.print(arr[i][j]+" ");
    }
    System.out.println();
    }
    }
    }

    /*
    使用二维数组完成:要求使用循环。
    1 0 0 0 0
    1 1 0 0 0
    1 2 1 0 0
    1 3 3 1 0
    1 4 6 4 1

    */

    public class F{
    public static void main(String[] args){
    int[][] arr=new int[5][5];
    for(int i=0;i<arr.length;i++){
    arr[i][0]=1;
    }

    for(int i=1;i<arr.length;i++){
    for(int j=1;j<5;j++){
    arr[i][j]=arr[i-1][j-1]+arr[i-1][j];

    }
    }

    for(int i=0;i<arr.length;i++){
    for(int j=0;j<=i;j++){
    System.out.print(arr[i][j]+" ");
    }
    System.out.println();
    }
    }
    }

    /*
    给你一个整数4682,要求计算出它的千位,百位,十位,个位,并且打印出来。
    千位 百位 十位 个位
    4 6 8 2

    */

    public class B{
    public static void main(String[] args){
    int t=4682;
    int q=t/1000%10;
    int b=t/100%10;
    int s=t/10%10;
    int g=t/1%10;

    System.out.println("千位 百位 十位 个位");
    System.out.println(q+" "+b+" "+s+" "+g);
    }

    }

    /*
    声明两个空间a,b,a=6,b=8,要求将a与b的数据进行交换后,打印出来。
    a的值是 b的值是
    8 6

    */

    public class I{
    public static void main(String[] args){
    int a=6;
    int b=8;
    int c;

    c=a;
    a=b;
    b=c;

    System.out.println("a的值是 b的值是");
    System.out.println(a+" "+b);
    }

    }

    最大值

    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    int[][] arr=new int[3][4];
    for(int i=0;i<arr.length;i++){
    System.out.println("请输入数");
    for(int j=0;j<4;j++){

    arr[i][j]=input.nextInt();
    }

    }
    int max=arr[0][0];
    for(int i=0;i<arr.length;i++){

    for(int j=0;j<4;j++){
    if(max<arr[i][j]){
    max=arr[i][j];
    }

    }

    }
    System.out.print(max);
    }

    public static void main(String[] args){
    Scanner input=new Scanner(System.in);

    int[] arr=new int[3];
    for(int i=0;i<arr.length;i++){
    System.out.println("请输入第"+(i+1)+"个整数");
    arr[i]=input.nextInt();
    }

    int max=arr[0];
    int min=arr[0];
    for(int i=1;i<arr.length;i++){
    if(max<arr[i]){
    max=arr[i];
    }
    if(min>arr[i]){
    min=arr[i];
    }

    }
    System.out.println("最大值是"+max);
    System.out.println("最小值是"+min);
    }

  • 相关阅读:
    IE兼容问题,各类css hack代码(亲测有效)
    javascript进阶系列专题:闭包(Closure)
    javascript进阶系列专题:作用域与作用域链
    github文件上传及github pages博客搭建教程
    javascript算法
    【CSS3】标签使用说明
    【html5】常见标签使用说明(持续更新)
    通过一行代码学习javascript
    Object.create()兼容实现方法
    oracle查询锁表解锁语句 (转)
  • 原文地址:https://www.cnblogs.com/monion/p/7049947.html
Copyright © 2011-2022 走看看