// phoneNumber.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#define telLength 2
int number[telLength]={4,2};
char c[10][10]=
{
"",
"",
"ABC",
"DEF",
"GHI",
"JKL",
"MNO",
"PQRS",
"TUV",
"WXYZ"
};
int answer[telLength]={0};
int total[10]={0,0,3,3,3,3,3,4,3,4};
void trave()
{
while(true)
{
for(int i=0;i<telLength;i++)
printf("%c",c[number[i]][answer[i]]);
printf("\n");
int k=telLength-1;
while(k>=0)
{
if(answer[k]<total[number[k]]-1)
{
answer[k]++;
break;
}
else
{
answer[k]=0;
k--;
}
}
if(k<0)
break;
}
}
void recursiveSearch(int* number,int* answer, int index, int n)
{
if(index==n)
{
for(int i=0;i<telLength;i++)
printf("%c",c[number[i]][answer[i]]);
printf("\n");
return;
}
for(answer[index]=0;answer[index]<total[number[index]];answer[index]++)
{
recursiveSearch(number,answer,index+1,n);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
//trave();
recursiveSearch(number,answer,0,telLength);
return 0;
}
编程之美--3.2电话号码对应英文单词
最新推荐文章于 2025-10-25 14:32:55 发布
本文介绍了一种通过递归搜索实现电话号码所有可能字母组合的算法。该算法使用了一个二维字符数组来映射数字到对应的字母,并通过递归函数遍历所有组合。此外,还提供了一种基于循环的方法作为备选方案。
6419

被折叠的 条评论
为什么被折叠?



