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("\t\tjava\tc#\tsql");

for(int i=0;i<arr.length;i++){
System.out.print("第"+(i+1)+"個學生\t");
for(int j=0;j<3;j++){
System.out.print(arr[i][j]+"\t");
}
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+"\t");
}
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]+"\t");
}

}
}


/*
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]+"\t");
}

}
}


/*

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]+"\t");
}
}
}


//給一個數組做反序。
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]+"\t");
}
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("\t\tjava\tc#\tsql");

for(int i=0;i<arr.length;i++){
System.out.print("第"+(i+1)+"個學生\t");
for(int j=0;j<3;j++){
System.out.print(arr[i][j]+"\t");
}
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]+"\t");
}
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("千位\t百位\t十位\t個位");
System.out.println(q+"\t"+b+"\t"+s+"\t"+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的值是\tb的值是");
System.out.println(a+"\t"+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);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM