这行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;
}