S
sowen
Unregistered / Unconfirmed
GUEST, unregistred user!
已知道有 list.h
里面有以下几个方法
list cons(char elem, list lst);
//新建一个list,如: newlist=cons('c',null());
list tail(list lst);
//除了list第一个元素外其他部分,其实就是类似next
char head(list lst);
//返回该list第一个元素
list null();
//返回一个空list
int isNull(list lst);
//判断是否为空
不能用 loop, 赋值 等操作, 只能用 递归. 不要问我为什么要这样, 这是 这次作业functional language 的要求, 我也很痛苦.
需要完成的是一个电话号码对英文的匹配,
比如
1=1
2=ABC
3=DEF
4=GHI
5=JKL
6=MNO
7=PRS
8=TUV
9=WXY
0=0
输入 1234 的话, 可以输出所有的匹配组合, 例如 :
1ADG
1ADH
1ADI
如此类推.
这个东西如果可以使用 loop 和赋值那些功能倒不难做, 可是这次作业的要求是不能使用那些东西, 只能允许用递归. 比如有一个方法叫
void generateLetters(list l);
一个方法叫 list getNumbers(7);
取7个电话号码
然后只能一行完成整个输出
generateLetters(getNumbers);
当然我自己还写了几个方法用于输出和输入.
我已经想了几天了, 实在摆弄不出来. 我最多, 假如输入 222, 只能输出
AAA
AAB
AAC
这样, 一到 pos=2 的时候就很麻烦了.
有人能给点建议吗? 谢谢 []
里面有以下几个方法
list cons(char elem, list lst);
//新建一个list,如: newlist=cons('c',null());
list tail(list lst);
//除了list第一个元素外其他部分,其实就是类似next
char head(list lst);
//返回该list第一个元素
list null();
//返回一个空list
int isNull(list lst);
//判断是否为空
不能用 loop, 赋值 等操作, 只能用 递归. 不要问我为什么要这样, 这是 这次作业functional language 的要求, 我也很痛苦.
需要完成的是一个电话号码对英文的匹配,
比如
1=1
2=ABC
3=DEF
4=GHI
5=JKL
6=MNO
7=PRS
8=TUV
9=WXY
0=0
输入 1234 的话, 可以输出所有的匹配组合, 例如 :
1ADG
1ADH
1ADI
如此类推.
这个东西如果可以使用 loop 和赋值那些功能倒不难做, 可是这次作业的要求是不能使用那些东西, 只能允许用递归. 比如有一个方法叫
void generateLetters(list l);
一个方法叫 list getNumbers(7);
取7个电话号码
然后只能一行完成整个输出
generateLetters(getNumbers);
当然我自己还写了几个方法用于输出和输入.
我已经想了几天了, 实在摆弄不出来. 我最多, 假如输入 222, 只能输出
AAA
AAB
AAC
这样, 一到 pos=2 的时候就很麻烦了.
有人能给点建议吗? 谢谢 []