读书人

这行c代码.解决思路

发布时间: 2012-02-04 15:43:08 作者: rapoo

这行c代码...
int p( int i, int N ){
return ( N && printf( "%d\n ", i ) && p( i+1, N-1 ) && ( N != 1 && printf( "%d\n ", i ) ) ) + 1;
}

谁解释下..

[解决办法]
翻译出来:

if(N == 0)
return 1;
else
{
printf( "%d\n ", i);

p(i+1, N-1);

if(N != 1)
printf( "%d\n ", i);

return 1; // 实际可能并不是 1, 但返回值并不重要
}


[解决办法]
int p( int i, int N )
{
return printf( "%d\n ",i)&&--N&&p(i+1,N)&&printf( "%d\n ",i)||1;
}
[解决办法]
if(N == 0)
return 1;
else
printf ( "%d\n ", i);
pp(i+1,N-1);
if(N == 1)
return 1;
printf( "%d\n ",i);
return 2;

[解决办法]
if(N == 0)
return 1;
else
{
printf( "%d\n ", i);

if(p(i+1, N-1) && N != 1); //p的返回值肯定为1或者2,所以p(i+1,N-1)应该不需要作为判断条件了
{
printf( "%d\n ", i);
return 2;
}
else
return 1;
}

读书人网 >C语言

热点推荐