for循环
-
// 1!+2!+...+10! 的和
// 1!+2!+...+10! 的和
package com.zhou.java.demo01;
public class demo05 {
// 1!+2!+...+10! 的和
public static void main(String[] args) {
long sum = 0;
for (int i = 1; i <= 10; i++) {
int t = 1;
for (int j = 1; j <= i; j++) {
t *= j;
}
sum += t;
}
System.out.println(sum);
}
}
-
杨辉三角
package com.zhou.java.demo01;
public class demo06 {
public static void main(String[] args) {
// 杨辉三角
int[][] arr = new int[10][];
for (int i = 0; i < arr.length; i++) {
arr[i] = new int[i + 1];
for (int j = 0; j < arr[i].length; j++) {
if (j == 0) {
arr[i][j] = 1;
} else if (j == arr[i].length - 1) {
arr[i][j] = 1;
} else {
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
-
把一个数放到一个数组内,并按大小找到自己相应的位置
package com.zhou.java.demo01;
public class demo07 {
public static void main(String[] args) {
int[] arr={1,3,4,5,7};
int num=6;
int index=-1;
for (int i = 0; i < arr.length; i++) {
if (num<=arr[i]){
index=i;
break;
}else {
index= arr.length;
}
}
System.out.println(index);
int[] arr2=new int[arr.length+1];
for (int i=0,j=0;i< arr2.length;i++){
if (i!=index){
arr2[i]=arr[j];
j++;
}else {
arr2[i]=num;
}
}
for (int i = 0; i < arr2.length; i++) {
System.out.print(arr2[i]+" ");
}
}
}
-
九九乘法表
package com.zhou.java.demo01;
public class dome02 {
public static void main(String[] args) {
int result=0;
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
result=i*j;
System.out.print(j+"*"+i+"="+result+"\t");
}
System.out.println();
}
}
}
冒泡排序
package com.zhou.java.demo01;
// 冒泡排序
public class dome03 {
public static void main(String[] args) {
int[] arr = {1, 5, 2, 3, 9, 6, 4};
int[] sort = sort(arr);
for (int i : sort) {
System.out.print(i + " ");
}
}
public static int[] sort(int[] array) {
int temp;
for (int i = 0; i < array.length - 1; i++) {
boolean flag = false;
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j + 1] > array[j]) {
temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
flag = true;
}
}
if (flag == false) {
break;
}
}
return array;
}
}
稀疏数组
package com.zhou.java.demo01;
public class dome04 {
public static void main(String[] args) {
int[][] arr = new int[11][11];
arr[1][3] = 2;
arr[3][5] = 5;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
System.out.println("============================================");
// 稀疏数组
int sum = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j] != 0) {
sum++;
}
}
}
System.out.println("sum=" + sum);
System.out.println("=========================================================");
int[][] arr1 = new int[sum + 1][3];
arr1[0][0] = 11;
arr1[0][1] = 11;
arr1[0][2] = sum;
int count = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j] != 0) {
count++;
arr1[count][0] = i;
arr1[count][1] = j;
arr1[count][2] = arr[i][j];
}
}
}
System.out.println("稀疏数组");
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i][0] + "\t"
+ arr1[i][1] + "\t"
+ arr1[i][2] + "\t");
}
System.out.println("=======================================");
System.out.println("还原稀疏数组");
int[][] arr2 = new int[arr1[0][0]][arr1[0][1]];
for (int i = 1; i < arr1.length; i++) {
arr2[arr1[i][0]][arr1[i][1]] = arr1[i][2];
}
for (int[] ints : arr2) {
for (int anInt : ints) {
System.out.print(anInt + "\t");
}
System.out.println();
}
}
}
递归
-
阶乘
package com.zhou.java.demo01;
public class demo01 {
public static void main(String[] args) {
System.out.println(f(3));
}
//递归
public static double f(double n){
if (n==1){
return n;
}else {
return n*f(n-1);
}
}
}
-
走迷宫
package com.zhou.java.demo02;
public class Demo01 {
public static void main(String[] args) {
int[][] arr = new int[12][12];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][0] = 1;
arr[0][j] = 1;
arr[arr.length - 1][j] = 1;
arr[i][arr.length - 1] = 1;
arr[3][1] = 1;
arr[3][2] = 1;
arr[2][2] = 1;
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
finWay(arr, 1, 1);
System.out.println("==============================================");
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
public static boolean finWay(int[][] map, int i, int j) {
if (map[10][10] == 2) {
return true;
} else {
if (map[i][j] == 0) {
map[i][j] = 2;
if (finWay(map, i + 1, j)) {
return true; //向下
} else if (finWay(map, i, j + 1)) {
return true; //向右
} else if (finWay(map, i - 1, j)) {
return true; //向上
} else if (