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\))哦。

posted @ 2021-12-23 21:18  Eason_AC  阅读(33)  评论(0)    收藏  举报