网上看到这样一个趣味题,但看到求解答案的代码:有人abcd从1000到9999轮询,有人a,b,c,d以此轮询查找,轮询次数都特别大,效率极低。估摸着做了一个优化,68次轮序结束,大大的提高了效率。代码如下:
int main(int argc , char* argv[])
{
int n,abcd,ab,cd;
for(n = 32; n < 100; n++)
{ // abcd 范围1000-9999,开根号之后32-99
abcd = n * n ;
ab = abcd / 100;
cd = abcd % 100;
if( n == (ab + cd) )
{
printf("%d\r\n",abcd);
}
}
getchar();
return 0;
}
答案是2025 3025 9801
int main(int argc , char* argv[])
{
int n,abcd,ab,cd;
for(n = 32; n < 100; n++)
{ // abcd 范围1000-9999,开根号之后32-99
abcd = n * n ;
ab = abcd / 100;
cd = abcd % 100;
if( n == (ab + cd) )
{
printf("%d\r\n",abcd);
}
}
getchar();
return 0;
}
答案是2025 3025 9801