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("--------------------");
}
}