请问一道题

请教一道题
题目
在手机键盘,我们可以发现26个字母分布在2-9这8个数字键上。某人的电话号码是65967427,观察单词“olympics”,可以发现:字母o位于数字键6上,字母l位于数字键5上,… 字母s 位于数字键7上。此时,我们说olympics是65967427对应的一个字母组合。65967427还可以对应其它很多种字母组合,例如:mjwmpgap也是其中之一。以C语言编写函数 :int transfer(int number)。该函数的输入为一个电话号码(允许输入为3位到11位的十进制数),在屏幕上输出该数字对应的所有字母组合,并返回组合的总数。如果数字中包含1或者0,由于没有与之对应的字母,则直接返回0。当数字小于3位或者大于11位时,亦没有对应字母组合,返回0。 

我只能想到递归··请教高手!~还有就是int类型能表示11位整数吗?


------解决方案--------------------
还有就是int类型能表示11位整数吗

不行,只能用数组或者__int64
------解决方案--------------------
C/C++ code
int transfer(int number)。

------解决方案--------------------
int 20多亿吧.过了就越界了
------解决方案--------------------
探讨
int 20多亿吧.过了就越界了

------解决方案--------------------
探讨
C/C++ codeint transfer(int number)。
既然都是数字,为何不用char[]或string呢,那样提取每个字符时还要方便些