1. 程式人生 > 其它 >CF25B Phone numbers 題解

CF25B Phone numbers 題解

CF25B Phone numbers 題解

怎麼說呢。。。水字串模擬題吧。

由於這個題目可以有多種解,所以判斷字串長度的奇偶性即可。

我的想法是:

  1. 長度為奇數,以\(A_1A_2-A_3A_4-......A_{n-4}A_{n-3}-A_{n-2}A_{n-1}A_n\)輸出即可。例如,輸入2可以這樣輸出:\(11-98-733\)

  2. 長度為偶數,以以\(A_1A_2-A_3A_4-......A_{n-3}A_{n-2}-A_{n-1}A_n\)輸出即可。樣例1就是這樣子的。

還有不懂的可以看下程式碼:

#include <cstdio>
#include <algorithm>
using namespace std;

int n, flag, a[107];
int main() {
	scanf("%d", &n);
	if(n % 2)	flag = 1;	//判斷奇偶性
	for(int i = 1; i <= n; ++i)
		scanf("%1d", &a[i]);
	for(int i = 1; i <= n; ++i) {
		printf("%d", a[i]);	//一個數字一個數字地輸出
		if(flag) {			//如果是奇數
			if(!(i % 2) && (i != n - 1))	//下標為偶數,在後面輸出"-"。注意!下標為n-1的數後面不需要加"-"!不然會判錯!
				putchar('-');
		} else
			if(!(i % 2) && (i != n))		//下標為偶數,在後面輸出"-"。注意!最後一個數後面不需要加"-"!
				putchar('-');
	}
	return 0;
}

你都看完了,不點一下右上方的贊再走嘛?

當然,有問題的話可以在題解討論區或直接私信我(\(UID=112917\))哦。