http://poj.org/problem?id=1002
题目大意 把每个号码先存成标准格式,再找有没有重复的
这个题要注意的地方就是不是7位数前面也要输入0,其他也没有什么特别难的地方
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<iomanip>
using namespace std;
int num[26]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,0,7,7,8,8,8,9,9,9,0};
char s[100];
int a[100000]={0};
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++){
int bei=1000000;
scanf("%s",&s);
int len=strlen(s);
for(int j=0;j<len;j++){
if(s[j]>='0' && s[j]<='9'){
a[i]+=(int)(s[j]-'0')*bei;
bei/=10;
}
else if(s[j]>='A' && s[j]<='Z'){
int x=(int)(num[s[j]-'A']);
a[i]+=x*bei;
bei/=10;
}
if(bei==0) break;
}
}
sort(a,a+n);
int x=1;
int sign=0;
int ssign=0;
for(int i=0;i<n;i++){
while(a[i]==a[i+1] && i<n-1){
sign=1;
x++;
i++;
}
if(sign==1){
ssign=1;
int bei=1000000;
cout<<setfill('0')<<setw(3)<<a[i]/10000;
cout<<'-';
cout<<setfill('0')<<setw(4)<<a[i]%10000;
cout<<' '<<x<<endl;
x=1;
sign=0;
}
}
if(ssign==0){
cout<<"No duplicates.";
}
return 0;
}