#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int TelLength=20;
char c[10][5]={
"","","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"
};
int total[10]={0,0,3,3,3,3,3,4,3,4};
int number[TelLength];
int answer[TelLength];
void Recursive(int *number,int *answer,int index,int n);
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",number+i);
int index=0;
memset(answer,0,sizeof(answer));
Recursive(number,answer,index,n);
printf("*********************************\n");
memset(answer,0,sizeof(answer));
while(true){
for(int i=0;i<n;i++)
printf("%c",c[number[i]][answer[i]]);
printf("\n");
int t=n-1;
while(t>=0)
if(answer[t]<total[number[t]]-1) {answer[t]++;break;}
else {answer[t]=0;t--;}
if(t<0)
break;
}
return 0;
}
void Recursive(int *number,int *answer,int index,int n){//dfs
if(index==n){
for(int i=0;i<n;i++)
printf("%c",c[number[i]][answer[i]]);
printf("\n");
return;
}
for(answer[index]=0;answer[index]<total[number[index]];++answer[index])
//for(int i=0;i<total[number[index]];i++)
Recursive(number,answer,index+1,n);
}
编程之美 3.2 TelPhone
最新推荐文章于 2017-08-26 19:46:33 发布