题目:
对如非全键盘的手机上的数字,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,要求对一段数字,输出其代表的所有可能的字母组合,如5869,可能代表JTMW、JTMX................
#include <iostream>
using namespace std;
char c[10][10] = {"", "","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"};
int total[10] = {0, 0, 3, 3, 3, 3, 3, 4, 3, 4};
void recursiveSearch(int* number, int* answer, int index, int n)
{
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]++)
{
recursiveSearch(number, answer, index+1, n);
}
}
int main()
{
int answer[4];
int number[4] = {3, 4, 5, 6};
recursiveSearch(number, answer, 0, 4);
}