CF25B Phone numbers 题解
怎么说呢。。。水字符串模拟题吧。
由于这个题目可以有多种解,所以判断字符串长度的奇偶性即可。
我的想法是:
-
长度为奇数,以\(A_1A_2-A_3A_4-......A_{n-4}A_{n-3}-A_{n-2}A_{n-1}A_n\)输出即可。例如,输入2可以这样输出:\(11-98-733\)。
-
长度为偶数,以以\(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\))哦。