首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求解一道笔试题,该怎么解决

2012-02-09 
求解一道笔试题前天参加一个外企的笔试,有一道程序题,内容如下:用C语言写一个函数intp(inti,intN),要求:(1

求解一道笔试题
前天参加一个外企的笔试,有一道程序题,内容如下:
用C语言写一个函数int   p(int   i,   int   N),要求:
(1)函数功能,从i打印到N,再逆序打印到i,每个数字占一行,例如p(1,3)打印如下
          1
          2
          3
          2
          1
(2)只能使用一条语句,即只能出现一次 "; "
(3)不能使用以下关键字
        do,   while,   for,   enum,   break,   continue,   goto,   volatile,struct
(4)不能使用?:和,运算符
(5)可供调用的库函数只有printf
请问这道题目应该如何求解,感觉必须要使用递归,但是怎样设置递归的终止条件呢?
这道题目满分10分,如果违反上述(2)~(4)条要求,每条都有相应的扣分数,呵呵,感觉是不是没有办法达到10分的要求,只能尽量满足(2)~(4)的要求?

[解决办法]
int p(int i, int N)
{
if(printf( "%d\n ", i) && i < N && p(i + 1, N) && printf( "%d\n ", i))
return N - i;

}

int main()
{
p(1, 3);
};
[解决办法]
if(printf( "%d\n ", i) && i < N && p(i + 1, N) && printf( "%d\n ", i))return N - i;

不错 !

热点排行