当前位置: 代码迷 >> C语言 >> [求助]有一个挺复杂的语句不理解
  详细解决方案

[求助]有一个挺复杂的语句不理解

热度:272   发布时间:2006-08-30 23:19:14.0
[求助]有一个挺复杂的语句不理解

在编一个“完数”的程序,在论坛里搜到了这个

#include<stdio.h>
int isPrime(long n,long i)
{
return n<i*i?1:n%i?isPrime(n,i+2):0;  /*请问这句怎么理解*/
}
int main(void)
{
long x,y;
for(x=2,y=4;x*y>0;x=y,y+=y)
if(isPrime(y-1,3))
printf("%ld\n",x*(y-1));
return 0;
}

搜索更多相关的解决方案: 语句  isPrime  long  int  

----------------解决方案--------------------------------------------------------
转换成if/else
----------------解决方案--------------------------------------------------------
能不能帮我换一下,因为对这个形式,不太熟悉,只知道最简单那种 "x&gt;y? x:y"
----------------解决方案--------------------------------------------------------

哪位高手有时间给讲一下吧,多谢多谢了!


----------------解决方案--------------------------------------------------------
if(n<i*i)
return 1;
else if(!n%i)
return 0;
else return isPrime(n,i+2);
思路完全是根据判断是否是质数的常规思路来的。
----------------解决方案--------------------------------------------------------
[QUOTE]if(n<i*i)
return 1;
else if(!n%i)
return 0;
else return isPrime(n,i+2);[/QUOTE]

wa!!
----------------解决方案--------------------------------------------------------
if(n<i*i)
{
1
}
else
{
if(n%i)
{
isPrime(n,i+2)
}
else
{
0
}
}
----------------解决方案--------------------------------------------------------

咩?老大写了啊


----------------解决方案--------------------------------------------------------
以下是引用soft_wind在2006-8-31 9:19:00的发言:
if(n<i*i)
return 1;
else if(!n%i)
return 0;
else return isPrime(n,i+2);
思路完全是根据判断是否是质数的常规思路来的。

错了吧
----------------解决方案--------------------------------------------------------

return n<i*i?1:n%i?isPrime(n,i+2):0;

if(n<i*i)
return 1;
else if(!n%i)
return isPrime(n,i+2);
else return 0;
为啥不是这个呢?


----------------解决方案--------------------------------------------------------
  相关解决方案