通过这道题学了学<string>的用法,但是本题还有很多解法,有时间一一搞一下。
题意:有的字母对应这数字,找出给出的一些号码中重复的个数。
参考的地址找不到了。
#include<iostream>
#include<string>
using namespace std;
int a[10001000];
int check(char c)
{
if(c=='A'||c=='B'||c=='C') return 2;
if(c=='D'||c=='E'||c=='F') return 3;
if(c=='G'||c=='H'||c=='I') return 4;
if(c=='J'||c=='K'||c=='L') return 5;
if(c=='M'||c=='N'||c=='O') return 6;
if(c=='P'||c=='R'||c=='S') return 7;
if(c=='T'||c=='U'||c=='V') return 8;
if(c=='W'||c=='X'||c=='Y') return 9;
return c-'0';
}
int main()
{
string str;
int N;
scanf("%d",&N);
memset(a,0,sizeof(a));
while(N--)
{
cin>>str;
int len=str.length();
int num=0;
for(int i=0;i<len;i++)
{
if(str.at(i)!='-')
num=num*10+check(str.at(i));
}
a[num]++;
}
bool flag=0;
for(int i=0;i<10000000;i++)
{
if(a[i]>1)
{
flag=1;
printf("%03d-%04d %d\n",i/1000,i%1000,a[i]);
}
}
if(!flag) printf("No duplicates.\n");
system("pause");
}