1.打印出深度5层杨辉三角形。
2.计算字符串中子串出现的次数 。
3.两个字符串连接程序。
4.输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
解答:
1. 打印出深度5层杨辉三角形。
public class PascalTriangle { public static int[][] getPascalTriangle(int nmax) { // 三角数组分配 int[][] odds = new int[nmax + 1][]; for (int n = 0; n <= nmax; n++) odds[n] = new int[n + 1]; // 填充三角形数组 for (int n = 0; n < odds.length; n++) { for (int k = 0; k < odds[n].length; k++) { /* * 计算二项式系数 n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3*...*k) */ int lotteryOdds = 1; for (int i = 1; i <= k; i++) { lotteryOdds = lotteryOdds * (n - i + 1) / i; } odds[n][k] = lotteryOdds; } } return odds; } public static void main(String[] args) { int nmax = 29; //打印三角形数组 for (int[] row : getPascalTriangle(nmax)) { for (int odd : row) { System.out.printf("%10d", odd); } System.out.println(); } } }
2.计算字符串中子串出现的次数 。
public class PascalTriangle { public static int[][] getPascalTriangle(int nmax) { // 三角数组分配 int[][] odds = new int[nmax + 1][]; for (int n = 0; n <= nmax; n++) odds[n] = new int[n + 1]; // 填充三角形数组 for (int n = 0; n < odds.length; n++) { for (int k = 0; k < odds[n].length; k++) { /* * 计算二项式系数 n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3*...*k) */ int lotteryOdds = 1; for (int i = 1; i <= k; i++) { lotteryOdds = lotteryOdds * (n - i + 1) / i; } odds[n][k] = lotteryOdds; } } return odds; } public static void main(String[] args) { int nmax = 29; //打印三角形数组 for (int[] row : getPascalTriangle(nmax)) { for (int odd : row) { System.out.printf("%10d", odd); } System.out.println(); } } }
3.两个字符串连接程序。
public class ConnectStr { public static String connectStr1(String str1, String str2) { String temp = ""; temp = str1 + str2; return temp; } public static String connectStr2(String str1, String str2) { StringBuffer temp = new StringBuffer(str1); temp.append(str2); return temp.toString(); } public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("第一个字符串连接方法的结果:" + connectStr1("sssssss", "aaaaaaaaaaaa")); System.out.println("第二个字符串连接方法的结果:" + connectStr2("12345", "789")); } }
4.输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
public class ArrayMaxExMin { public static int[] arrayMaxExMin(int[] arr) { int max = arr[0]; int indexmax = 0; int min = arr[0]; int indexmin = 0; for (int i = 0; i < arr.length; i++) { if (max < arr[i]) { max = arr[i]; indexmax = i; } if (min > arr[i]) { min = arr[i]; indexmin = i; } } arr[indexmin] = max; arr[indexmax] = min; return arr; } public static void main(String[] args) { int[] a = { 1, 12, 3, 20, 78, 6, 10 }; int[] b = { 1, 12, 3, 20, 78, 6, 10 }; System.out.print("数组交换前:"); for (int i : a) { System.out.print(i + " "); } System.out.println("--------------------"); arrayMaxExMin(a); System.out.print("数组交换前后:"); for (int i : a) { System.out.print(i + " "); } System.out.println("--------------------"); } }
