codeforces-25B. Phone numbers-题解
题目:
伯兰的电话号码是n位数字的序列。通常,为了更容易记住数字,它被分成两组或三组数字。例如,电话号码1198733更容易记住为11-987-33。你的任务是找出一个给定的电话号码,它可以分成两组或三组。 输入第一行包含整数n(2<=n<=100)个电话号码。第二行包含要分组的电话号码n位。输出给定电话号码分成两组或三组的任何一组。按单个字符-分隔组。如果答案不是唯一的,则输出any。
输入
6
549871
输出
54-98-71
输入
7
1198733
输出
11-987-33
思路:
主要看与输入n与3的关系,分三种情况,(整除,余1,余2)
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
int n;
string a;
cin>>n;
cin>>a;
if(n%3==0){//如果除得尽3,那么隔3个用一个“-”
cout<<a[0]<<a[1]<<a[2];
for(int i=3;i<n;i=i+3){
cout<<'-'<<a[i]<<a[i+1]<<a[i+2];
}
cout<<endl;
}
else if(n%3==1){//前面两个用"-"
cout<<a[0]<<a[1]<<'-'<<a[2]<<a[3];
for(int i=4;i<n;i=i+3){
cout<<'-'<<a[i]<<a[i+1]<<a[i+2];
}
cout<<endl;
}
else{//前面一个用“-”
cout<<a[0]<<a[1];
for(int i=2;i<n;i=i+3){
cout<<'-'<<a[i]<<a[i+1]<<a[i+2];
}
cout<<endl;
}
return 0;
}
这道题没有什么难度,暴力+列举就好!!!
标签:
c++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)