zoukankan      html  css  js  c++  java
  • 题解 CF25B 【Phone numbers】

    一道字符串模拟题

    首先我们知道

    偶数+偶数=偶数

    偶数+奇数=奇数

    然后我们就可以对(N)进行分类讨论:

    • (Nle3)时,直接输出字符串即可

    • (N=2k) ((kge2))时,可以把(N)拆分成若干个长度为2的字符串,在两个字符串之间添上-号

    • (N=2k+1) ((kge2))时,可以把(N)拆分成一个长度为3的字符串和若干个长度为2的字符串,在两个字符串之间添上-号

    Code

    #include<bits/stdc++.h>
    using namespace std;
    string s;
    int sum;
    int n;
    int main()
    {
    	scanf("%d",&n);
    	cin>>s;
    	if(n<=3) //如果n<=3,直接输出
    	{
    		cout<<s;
    		return 0;
    	}
    	if(n%2==0) //n为偶数则拆分成若干个长度为2的字符串
    	{
    		for(int i=0; i<n; i++)
    		{
    			sum++;
    			printf("%c",s[i]);
    			if(i==n-1) return 0;
    			if(sum==2)
    			{
    				printf("-");
    				sum=0;
    			}
    		}
    	}
    	else //n为奇数则拆分成一个长度为3的字符串和若干个长度为2的字符串
    	{
    		for(int i=0; i<3; i++)
    		{
    			printf("%c",s[i]);
    		}
    		printf("-");
    		for(int i=3; i<n; i++)
    		{
    			sum++;
    			printf("%c",s[i]);
    			if(i==n-1) return 0;
    			if(sum==2)
    			{
    				printf("-");
    				sum=0;
    			}
    		}
    	}
    	return 0;
    }
    
    
  • 相关阅读:
    UITableView学习笔记
    IOS基础之设置APP的名字、设置图标、添加等待加载时的图片
    UIScrollView,UIPageControl
    UIPickerView基本用法
    最大公约数和最小公倍数
    快速幂、快速乘
    素数筛
    最小生成树
    BZOJ1070 [SCOI2007]修车
    BZOJ1109 [POI2007]堆积木Klo
  • 原文地址:https://www.cnblogs.com/WKAHPM/p/11628903.html
Copyright © 2011-2022 走看看