1. 程式人生 > >程式設計練習題:測試一下自己的基礎程式設計水平

程式設計練習題:測試一下自己的基礎程式設計水平

作者:java_wxid

練習:求1+2!+3!+…+20!的和

long sum = 0;
for (int i = 1; i <= 20; i++) {
	long temp= 1;
	for (int j = 1; j <= i; j++) {
		temp *= j;
	}
	sum += temp;
}
System.out.println(sum);

結果為:2561327494111820313

練習:獲取字串中各個的字元數量

public static void main(String[] args) {
		String string = "中國,國國哥,好帥是個大帥,哥哥";
		HashMap<Character, Integer> hashMap = new HashMap<>();
		while(string.length()>0) {
			Character c = string.charAt(0);
			string = string.substring(1);
			Integer integer = hashMap.get(c);
			if(integer == null ) {
				hashMap.put(c, 1);
			}else {
				hashMap.put(c, integer + 1);
			}
		}
		Set<Entry<Character, Integer>> entrySet = hashMap.entrySet();
		for (Entry<Character, Integer> entry : entrySet) {
			System.out.println(entry);
		}
}

結果:

哥=3
帥=2
大=1
個=1
,=3
中=1
國=3
好=1
是=1

練習:消除集合中重複的元素

public static void main(String[] args) {
		List list = Arrays.asList(1,2,3,3,4,4,5,5,6,1,9,3,25,4);
		HashSet<Integer> hashSet = new HashSet<>();
		hashSet.addAll(list);
		for (Integer integer : hashSet) {
			System.out.println(integer);
		}
}

結果:

1
2
3
4
5
6
9
25

練習:找出陣列中的一個值,使其左側值的和等於右側值的加和,例如:1,2,5,3,2,4,2,結果為第四個值。

public static void main(String[] args) {
		int[] arr = new int[] {1,2,5,3,2,4,2};//1,2,5,3,2,4,2,9,2,1,7,6,3
		int targetIndex=0;
		for (int i = 0; i < arr.length; i++) {
			int leftSum=0;
			int rightSum=0;
			for (int j = 0; j < targetIndex; j++) {
				leftSum += arr[j];
			}
			for (int j = targetIndex+1; j < arr.length; j++) {
				rightSum+=arr[j];
			}
			if(leftSum == rightSum) {
				break;
			}
			targetIndex++;
		}
		if(targetIndex == arr.length) {
			System.out.println("未找到這樣的數值");
		}else {
			System.out.println("目標下標:" + targetIndex + "對應的值:" + arr[targetIndex]);
		}
}

結果為:目標下標:3對應的值:3

未完結