最后一道题
当时没做出来
回家想了一下
在家不能上web,今天才拿上来分享一下
函数原形已经给出:int p(int i, int N);
功能:调用该函数,打印如下格式的输出,例p(1, 7);
1
2
3
4
5
6
7
6
5
4
3
2
1
即每行一个数字。(注意:N只打印一次)
要求:
函数中唯一能够调用的函数就是printf。
只使用一条语句,如果你真的不能用一条语句,每增加一条语句扣1分。
不准使用如下的关键字:typedef, enum, do, while, for, switch, case, break, co
ntinue, goto,
until, if, ..具体很多我也忘了,反正能用的不多。
不能使用逗号表达式和?:表达式。
标准:(总分10分)
1. 每多一条语句扣1分,即每多一个;就扣1分
2. 每使用一次if或?:扣2分
3. 每使用一次for,while, swith各扣4分
评:int proc(int i, int n)
{
return printf("%d/n",i) && (i == n || (proc(i + 1, n) && printf("%d/n",i)));
}
小心如下的就不能结束递归了.
#include "stdafx.h"
#include "stdio.h"
int proc(int i, int n)
{
int a= printf("%d/n",i);
return printf("%d/n",i) && ((proc(i + 1, n) && printf("%d/n",i)) || i == n);
}
int main(int argc, char* argv[])
{
proc(1,7);
return(0);
}